R中的非参数重复测量多路方差分析?

机器算法验证 r 方差分析 重复测量 非参数 马诺瓦
2022-02-03 04:35:42

以下问题是我一段时间以来的圣杯之一,我希望有人能够提供一个很好的建议。

我希望使用 R 执行非参数重复测量多路方差分析。

我一直在网上搜索和阅读一段时间,到目前为止只能找到一些案例的解决方案:friedman test for one way nonparametric重复测量anova,ordinal regression with {car} Anova function for multi way nonparametric方差分析等。部分解决方案不是我在这个问题线程中寻找的。到目前为止,我已经在我前段时间发表的一篇文章中总结了我的发现(标题为:Repeated measure ANOVA with R (functions and tutorials),以防它对任何人有所帮助)


如果我在网上阅读的内容属实,则可以使用混合序数回归模型(又名:比例赔率模型)来完成此任务。

我发现了两个似乎相关的包,但找不到关于该主题的任何小插曲:

所以对这个主题很陌生,我希望从这里的人那里得到一些指导。

有没有关于这个主题的教程/推荐阅读?更好的是,有人可以建议一个简单的示例代码来说明如何在 R 中运行和分析它(例如:“非参数重复测量多路方差分析”)?

3个回答

我是该ez包的作者,它有一个名为 ezPerm() 的函数,它计算一个排列测试,但可能不能正确地进行交互(文档也承认这一点)。最新版本有一个名为 ezBoot() 的函数,它允许您进行自举重采样,该重采样考虑到重复测量(通过重采样主题,然后在主题内),或者使用传统的单元均值作为预测统计量,或者使用混合效应建模进行预测对于设计中的每个单元格。我仍然不确定来自混合效应模型预测的引导 CI 有多“非参数”;我的直觉是它们可能被合理地认为是非参数的,但鉴于我仍在学习混合效应模型,我对这一领域的信心很低。

如有疑问,请引导!真的,我不知道处理这种情况的固定程序。

自举是从手头的数据生成一些错误参数的一种普遍适用的方法。引导程序不依赖于典型的参数假设,而是利用样本的特征来生成一个经验分布,您的样本估计值可以与之进行比较。

谷歌学者是黄金......以前做过......至少一次。

伦堡,克利福德 E.;Tousignant,詹姆斯 P。1985 “Efron 的 Bootstrap 与重复测量设计的应用”。多元行为研究;Apr85,卷。20 第 2 期,p161,18p

在一些论坛和邮件列表中提到了一个“技巧”——我还在 Joop Hox 的书“多级分析”(2010 年第二版)第 189 页中发现了它。

想法是:您将长数据重新格式化为一个长数据集,在其中创建一个包含所有 DV 响应的新 DV,并使用包含有关 DV 性质的信息的索引变量来预测此结果。

假设您有 9 个抑郁症状(序数)、2 个测量点和 300 个受试者。因此,虽然普通数据集中有 300 行,而在长数据集中有 600 行,但这个新数据集将有 9(症状)x 2(时间)x 300(主题)行。

新的 DV 变量“症状”现在包含参与者对 9 个症状的症状严重程度,变量“指数”包含有关症状性质的信息(1 到 9),然后有两个变量“时间”和“用户身份”。

您现在可以使用该ordinal包来运行它。

data<-read.csv("data_long_long.csv", head=T)

data$symptoms <- factor(data$symptoms)
data$time <- factor(data$time)
data$index <-factor(data$index)

m1<-clmm2(symptoms ~ index+time, random=UserID, data = data, Hess=TRUE, nAGQ=10)

在我的具体情况下,我对索引和时间之间是否存在显着的交互感兴趣,所以我运行了一个额外的模型并比较了它们:

m2<-clmm2(symptoms ~ index+time, random=UserID, data = data, Hess=TRUE, nAGQ=10)
anova(m1,m2)

CLMM2 使用随机截距模型(据我所知,该软件包ordinal不做随机斜率),如果您不使用随机截距模型,您可以使用 CLM 运行模型,例如:

m3<-clm(symptoms ~ index+time, data = data)