python 的哪个统计模块支持单向方差分析和事后测试(Tukey、Scheffe 或其他)?

Posted

技术标签:

【中文标题】python 的哪个统计模块支持单向方差分析和事后测试(Tukey、Scheffe 或其他)?【英文标题】:What statistics module for python supports one way ANOVA with post hoc tests (Tukey, Scheffe or other)? 【发布时间】:2013-04-09 14:18:43 【问题描述】:

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

【问题讨论】:

TukeyHSD 内置于 R 中。这是否符合您的要求? statsmodels 在沙盒中有一个tukeyhsd 函数,但我没试过。 我正在寻找相同的功能,我想我会使用 RPy,一个 R 的接口,它看起来像一个魅力! 见scikit-posthocs。 【参考方案1】:

单方面的方差分析可以像这样使用

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

请参考this网站如何设置参数。 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 我使用类似于@JavierdelaRosa 建议的方法将 p 值添加到表和输出属性。应该很快添加 - 请参阅pull request。 @ami_GS 你如何让它打印结果?当我这样做时,它只会在 0x0DBEBB10 处打印“tukeyHSDResults 对象....对不起基本问题...【参考方案2】:

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

查看 Anova1way 的文档here

【讨论】:

很遗憾,此库不再受支持。

以上是关于python 的哪个统计模块支持单向方差分析和事后测试(Tukey、Scheffe 或其他)?的主要内容,如果未能解决你的问题,请参考以下文章

R语言协方差分析(analysis of covariance)实战:协方差分析ANCOVA(analysis of covariance)(检查模型假设)拟合协方差分析ANCOVA模型事后分析

R语言Friedman检验实战:Friedman检验是单因素重复测量方差分析的一种非参数替代方法有bonferroni校正的成对Wilcoxon秩和检验进行事后(post hoc)测试分析

R语言使用lmPerm包应用于线性模型的置换方法(置换检验permutation tests)在同一数据集上使用单向方差分析(one-way ANOVA)使用aovp函数的置换检验单向方差分析

循环的单向方差分析:如何通过数据框的多列启动

R和 Python 用于统计学分析,哪个更好

R语言Tukey检验进行事后检验(post hoc)实战:单因素方差分析告诉我们并不是所有的群体手段的效果是均等的,确切地找出哪些组彼此不同使用Tukey检验