import numpy as np import scipy.stats as ss #正态分布检验 norm_dist=ss.norm.rvs(size=20) #生成20个符合正态分布数据 ss.normaltest(norm_dist) #检验是否符合正态分布 # 返回结果:NormaltestResult(statistic=3.712,pvalue=0.1562) p值大于0.05,符合正态分布 #卡方分布检验 ss.chi2_contingency([[15,95],[85,5]]) #卡方检验两行数据 #返回结果:(126.0808,2.95e-29,1,array([[55,55],[45,45])) #第一个数:统计值,第二个数:p值,第三个数:自由度,第四个数:理论分布 #独立t分布检验:检验两组均值是否有差异 ss.ttest_ind(ss.norm.rvs(size=10),ss.norm.rvs(size=20)) #t检验n1=10,n2=20的两组数 #返回结果:Ttest_indResult(statistic=-1.8007,pvalue=0.082526) p>0.05,表示两组均值无显著性差异 #方差检验 ss.f_oneway([49,50,39,40,43],[28,32,30,26,34],[38,40,45,42,48]) #F检验三组数据 #返回结果: F_onewayResult(statistic=17.618,pvalue=0.000231)
QQ图,对比一个分布是否符合一个已知分布:比如我们得到一个分布,得到他的分位数,然后对应分位数找到正态分布分位数,横轴是正态分布的分位数,纵轴是这个分布的分位数,若所得到图形与xy角平分线重合,则是符合分布的。
from statsmodels.graphics.api import qqplot from matplotlib import pyplot as plt ply.show(qqplot(ss.norm.rvs(size=100)))



