加载中…
个人资料
王江源
王江源
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,379,685
  • 关注人气:1,086
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Python替代SPSS进行各项统计检验

(2020-04-25 23:11:29)
标签:

python

统计学

采用python的scipy库完成常用的假设检验, 配合pandas库非常好用

正态性检验
检验数据样本是否具有高斯分布。

from scipy.stats import shapiro
data = [21,12,12,23,19,13,20,17,14,19]
stat,p = shapiro(data)
print("stat为:%f" %stat,"p值为:%f" %p)

皮尔逊相关性检验
检查两个样本是否相关的统计检验

from scipy.stats import pearsonr
data1 = [21,12,12,23,19,13,20,17,14,19]
data2 = [12,11,8,9,10,15,16,17,10,16]
corr,p = pearsonr(data1,data2)
print("corr为:%f" %corr,"p值为:%f" %p)

卡方检验
检验两个分类变量的独立性

from scipy.stats import chi2_contingency
data1 = [21,12,12,23,19,13,20,17,14,19]
data2 = [12,11,8,9,10,15,16,17,10,16]
stat,p,dof,expected = chi2_contingency(data1,data2)
print("stat为:%f" %stat,"p值为:%f" %p)

T检验
检验两个独立样本的均值是否存在显著差异

from scipy.stats import ttest_ind
data1 = [21,12,12,23,19,13,20,17,14,19]
data2 = [12,11,8,9,10,15,16,17,10,16]
stat,p = ttest_ind(data1,data2)
print("stat为:%f" %stat,"p值为:%f" %p)

配对T检验
检验两个配对样本的均值是否有显著差异

from scipy.stats import ttest_rel
data1 = [21,12,12,23,19,13,20,17,14,19]
data2 = [12,11,8,9,10,15,16,17,10,16]
stat,p = ttest_rel(data1,data2)
print("stat为:%f" %stat,"p值为:%f" %p)

方差分析
测试两个或两个以上独立样本的均值是否存在显著差异

from scipy.stats import f_oneway
data1 = [21,12,12,23,19,13,20,17,14,19]
data2 = [12,11,8,9,10,15,16,17,10,16]
stat,p = f_oneway(data1,data2)
print("stat为:%f" %stat,"p值为:%f" %p)

Mann-Whitney U检验
检验两个独立样本的分布是否相等. 对应参数检验里面的t检验.

from scipy.stats import mannwhitneyu
data1 = [21,12,12,23,19,13,20,17,14,19]
data2 = [12,11,8,9,10,15,16,17,10,16]
stat,p = mannwhitneyu(data1,data2)
print("stat为:%f" %stat,"p值为:%f" %p)

Wilcoxon符号秩检验
检验两个配对样本的分布是否均等. 对应参数检验里面的配对t检验.

from scipy.stats import wilcoxon
data1 = [21,12,12,23,19,13,20,17,14,19]
data2 = [12,11,8,9,10,15,16,17,10,16]
stat,p = wilcoxon(data1,data2)
print("stat为:%f" %stat,"p值为:%f" %p)

Kruskal-wallis H检验. 
检验两个或多个独立样本的分布是否相等. 对应参数检验里面的方差分析.

from scipy.stats import kruskal
data1 = [21,12,12,23,19,13,20,17,14,19]
data2 = [12,11,8,9,10,15,16,17,10,16]
stat,p = kruskal(data1,data2)
print("stat为:%f" %stat,"p值为:%f" %p)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有