21

我曾尝试查看 Python 的多个统计模块,但似乎找不到任何支持one-way ANOVA事后测试的模块。

4

2 回答 2

42

ANOVA可以像这样使用的一种方式

from scipy import stats
f_value, p_value = stats.f_oneway(data1, data2, data3, data4, ...)

这是一种方差分析方法,它返回 F 值和 P 值。
如果 P 值低于您的设置,则存在显着差异。


Tukey-kramer HSD 测试可以像这样使用

from statsmodels.stats.multicomp import pairwise_tukeyhsd
print pairwise_tukeyhsd(Data, Group)

这是多重比较。输出就像

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 
------------------------------------------------

请参阅站点如何设置参数。
statsmodels 的 tukeyhsd 不返回 P 值。
因此,如果您想知道 P 值,请根据这些输出值计算或使用 R。

于 2014-01-17T04:17:02.087 回答
1

我认为Pyvttbl库返回一个 ANOVA 表,包括事后测试(即 TukeyHSD)。事实上,Pyvttbl 的巧妙之处在于您还可以对重复测量进行 ANOVA。

在此处查看 Anova1way 的文档

于 2016-07-13T14:29:59.530 回答