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


16

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

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

我已经在网上进行了一段时间的搜索和阅读,到目前为止,仅能找到以下几种情况的解决方案:Friedman测试单向非参数重复测量方差分析,有序回归与{car} Anova函数用于多路非参数方差分析等。部分解决方案不是我在此问题线程中寻找的。我在一段时间前发布的一篇文章中总结了到目前为止的发现(标题为:重复测量R的方差分析(函数和教程),以防万一。


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

我发现了两个看似相关的软件包,但找不到关于该主题的任何插图:

因此,对于这个主题来说,我是新手,我希望这里的人们能提供一些指导。

是否有关于该主题的任何教程/建议阅读的内容?甚至更好的是,有人可以建议一个简单的示例代码来说明如何在R中运行和分析此代码(例如:“非参数重复测量多方方差分析”)吗?


塔尔,请问您是否找到了解决方案?我遇到了同样的问题,下面的回复可能有助于您找到答案,但实际上并没有提供确定的答案。我有9个顺序DV和2个时间点,并且正在寻找您想要执行的相同测试。
Torvon

1
嗨,Torvon。我从来没有一个解决方案。我想排列测试将是最安全的方法,但是我却没有时间坐下来并使它工作。如果您这样做-请再次提出您的答案。干杯,T
Tal Galili

感谢你的快速回复。我必须解决这个问题,并告知您。
Torvon

Answers:


8

EZ包,里面的我是作者本人观点,()称为ezPerm一个函数计算置换试验,但可能没有做正确的相互作用(文档也承认这一点)。最新版本具有称为ezBoot()的功能,该功能可让您进行引导重采样,并考虑到重复的测量(通过对对象进行重采样,然后在对象内进行重采样),或者使用传统的单元均值作为预测统计量,或者使用混合效果建模进行预测设计中的每个单元。我仍然不确定混合效果模型预测中的自举配置项有多“非参数”。我的直觉是可以合理地将它们视为非参数,但是鉴于我仍在学习混合效果模型,因此我对此领域的信心很低。


你好,迈克。感谢您的回答和您的包裹-真的很棒!
Tal Galili 2010年

@Mike,您的包裹似乎是混合多因素设计的唯一解决方案。的aovp选择-从孤立lmperm包-产生用于p值巨大变化,看到。我有几个问题:在哪里可以找到有关实施的书目参考ezPerm?如何解释该功能可能无法正确进行交互?在这种情况下,事后测试可能是什么?谢谢!
toto_tico 2015年

@Mike,ezPerm( data = DATA, dv = DV, wid = WID, within = interaction(A,B), perms = 1e3)仔细检查互动是否有意义有意义吗?
toto_tico

5

如有疑问,请自举!确实,我不知道处理这种情况的固定程序。

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

谷歌学者是金...它已经完成了...至少一次。

伦尼堡,克利福德E .;Tousignant,James P .;1985年“ Efron的引导装置在重复测量设计中的应用”。多元行为研究;卷85 20第2期,p161,18p


1
谢谢布雷特的带头!我想知道是否有人现在必须在R中实现它(我想不是)。
塔尔·加利利

1
对。R有很多例程可以辅助引导程序和其他随机化方法,但是我不知道您会发现任何与此问题相关的特定信息。
Brett 2010年

第一句话非常好。我希望它没有版权,因为我计划使用它:D
gui11aume12年

0

在某些论坛和邮件列表中提到了一个“技巧”,我在Joop Hox的书“ Multilevel Analysis”(第二版,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)

1
m1和m2不完全相同,也许是您的意思clmm2(symptoms ~ index*time, random=UserID, data = data, Hess=TRUE, nAGQ=10) anova(m1,m2)。您是否知道如何用新的clmm函数表达这一点?我不确定这种表示法。
toto_tico 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.