python的哪些统计模块支持单向ANOVA和事后测试(Tukey,Scheffe或其他)?

dav*_*ler 18 python statistics ipython scipy statsmodels

我试过查看Python的多个统计模块,但似乎找不到任何支持one-way ANOVApost hoc测试.

ami*_*_GS 34

单因素方差分析可以像

from scipy import stats
f_value, p_value = stats.f_oneway(data1, data2, data3, data4, ...)
Run Code Online (Sandbox Code Playgroud)

这是单向ANOVA,它返回F值和P值.
如果P值低于您的设置,则有显着差异.


Tukey-kramer HSD测试可以像

from statsmodels.stats.multicomp import pairwise_tukeyhsd
print pairwise_tukeyhsd(Data, Group)
Run Code Online (Sandbox Code Playgroud)

这是多比较.输出就像

Multiple Comparison of Means - Tukey HSD,FWER=0.05
================================================
group1 group2 meandiff   lower    upper   reject
------------------------------------------------
  0      1    -35.2153 -114.8741 44.4434  False 
  0      2     46.697   -40.4993 133.8932 False 
  0      3    -7.5709    -87.49  72.3482  False 
  1      2    81.9123    5.0289  158.7956  True 
  1      3    27.6444   -40.8751  96.164  False 
  2      3    -54.2679 -131.4209 22.8852  False 
------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

请参阅站点如何设置参数.
statsmodels的tukeyhsd不返回P值.
所以,如果你想知道P值,从这些输出值计算或使用R.

  • 将输出保存到变量`res`后,可以通过应用`psturng(np.abs(res.meandiffs/res.std_pairs),len(res.groupsunique),res.df_total)来获得p值,其中` psturng`来自`from statsmodels.stats.libqsturng import psturng` (3认同)
  • 我已使用类似于 @JavierdelaRosa 建议的方法将 p 值添加到表和输出属性中。应该很快添加——请参阅[拉取请求](https://github.com/statsmodels/statsmodels/pull/5418)。 (2认同)