Python函数实现双向重复测量ANOVA

4

非常感谢您的回答。我想在Python中进行双向重复测量的ANOVA,其中一个自变量有5个水平,另一个自变量有4个水平,只有一个因变量。我已经尝试在scipy文档和一些在线博客中查找,但似乎找不到任何有用的信息。


据我所知,scipy中尚未完全实现混合效应和分层模型。有一个未完成的混合效应沙盒模块,但我不知道结果有多准确。如果您愿意,可以研究PyStan。它需要更多的编码工作,但您可以分析任何您想到的模型。 - Nate
谢谢 - 我会去查看的。 - DGMC90
2个回答

8
您可以使用Pingouin软件包中的rm_anova函数(我是该软件包的创建者),它可直接与pandas DataFrame配合使用,例如: (详见此)
import pingouin as pg

# Compute the 2-way repeated measures ANOVA. This will return a dataframe.
pg.rm_anova(dv='dv', within=['iv1', 'iv2'], subject='id', data=df)

# Optional post-hoc tests
pg.pairwise_ttests(dv='dv', within=['iv1', 'iv2'], subject='id', data=df)

我该如何检查球形和正态等假设是否得到满足?我发现只有单向重复测量ANOVA的方法已经实现。 - Shiv Patel

4

这是一个老问题,但我会提供一个答案。

你可以看一下pyvttbl。使用这个库(可以通过Pip安装),您可以进行独立和重复测量(以及混合设计)的n-way ANOVA。请注意,似乎您将需要使用Pyvttbl自己的数据框方法来处理您的数据。

非常简单:

dataframe.anova('dv', sub='id', wfactors=['iv1',      'iv2'])

你可以查看我的博客文章,了解如何进行重复测量的2路方差分析的更详细示例。 (链接)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接