检验对象 条件 H0 检验名字 构建随机变量 服从分布 Python(scipy.stats as stats, statsmodel.api as sm) 备注
均值 方差已知 u<=u0 z检验
 
N(0,1) import statsmodels.api as sm
ds1=sm.stats.DescrStatsW(data1)

tstat, pvalue = ds1.ztest_mean(value=2, alternative='two-sided')
ds1.zconfint_mean(alpha=0.05,alternative='larger')
"two-sided"
 "larger"
 "smaller"
u>=u0
u==u0
方差未知 u<=u0 t检验
 
t(n-1) tstat, pvalue, df = ds1.ttest_mean(value=2, alternative='two-sided')  
u>=u0
u==u0
两独立样本
方差已知
  z检验
 
N(0,1) cm = sm.stats.CompareMeans(ds1, ds2)
tstat, pvalue = \
    cm.ztest_ind(alternative='two-sided', usevar='pooled', value=0)
# 'two-sided','larger','smaller'
# 'pooled' or 'unequal'
 
   
   
两独立样本
方差未知
u1-u2<=delta t检验
 
 
cm = sm.stats.CompareMeans(ds1, ds2)
tstat, pvalue, df = \
    cm.ttest_ind(alternative='two-sided', usevar='pooled', value=0)
# 'two-sided','larger','smaller'
# 'pooled' or 'unequal'
标准流程:
检验正态性(ks,sw)

方差齐性检验(F)

ttest_ind
u1-u2>=delta
u1-u2==delta
两配对样本   t检验
  stats.ttest_rel(a,b)  
三个以上样本
单因素
u1=u2=...=un 单因素方差分析
F tstat, pvalue = stats.f_oneway(data1, data2, data3)

from statsmodels.formula.api import ols
sm.stats.anova_lm(ols('target ~ C(motor)',data=df).fit())
 
三个以上样本
双因素
 
双因素方差分析
ANOVA2!A1 sm.stats.anova_lm(ols('target ~ C(motor) + C(screw)',data=df).fit())

带交互项:
ana = ols('target ~ C(motor) + C(screw) +C(motor)*C(screw)', data= df).fit()
sm.stats.anova_lm(ana)
 
方差 单正态   卡方检验
 
  [h,p,ci,stats]=matlab.vartest(X,m,alpha,tail)    
   
   
两正态   F检验
 
F(m-1,n-1) matlab.vartest2(X1,X2,alpha,tail)  
 
          matlab.vartest3  
     
三个以上正态         matlab.vartestn  
             
分布 离散样本 样本服从指定离散分布 卡方拟合检验
stats.chisquare([16, 16, 10], f_exp=[16, 16, 8])

# 必须是基数相同的频数()
原理:分组,计算每组的频数

  样本服从正态分布 Jarque-Beran
statistic, pvalue = stats.jarque_bera(series) 峰度和偏度
  样本服从指定分布 Kolmogorov
–Smirnov test
 
  stats.kstest(rvs=df_rv.data,cdf='norm') cdf : str or callable(of cdf)
  样本服从正态分布 Shapiro–Wilk test     stats.shapiro(series) 样本量n<2000,用sharpiro-wilk
n>2000,用kstest
其他     符号检验        
    秩和检验        
    中值检验     stats.median_test  
相关性 列联表分析 两组离散变量不相关 卡方检验     cross_table = df.pivot_table(index='a', columns='b', values='c', aggfunc='count')
chi2, p, dof, expected = stats.chi2_contingency(cross_table)
 
皮尔逊相关系数 ρ=0  
拒绝域
stats.mstats.pearsonr  
spearman相关系数         stats.mstats.spearmanr