R中的交叉重复效应和AR1协方差结构的线性混合模型

41

我拥有来自参与者(part)的受试者内生理数据,他们都在三轮(round)中查看刺激物(阅读报纸),每个轮次有五份报纸(paper),每个报纸中都有不同数量的访问(visit)。我有两个固定因素(CONDhierCONDSbund)加上交互作用来预测生理状态(例如EDA),通常是自回归的。我尝试使用随机效应(现在先只考虑截距)来考虑生理学上的个体差异,也许会出现疲劳等其他随机效应。

因此,在R中运行的模型将是:

MIXED EDA BY CONDhier CONDabund  
 /FIXED=CONDhier CONDabund CONDhier*CONDabund | SSTYPE(3)  
 /RANDOM=INTERCEPT | SUBJECT(part) COVTYPE(VC)  
 /RANDOM=INTERCEPT | SUBJECT(part*round) COVTYPE(VC)  
 /PRINT=SOLUTION  
 /METHOD=REML  
 /REPEATED=visit | SUBJECT(part*round*paper) COVTYPE(AR1).

现在,我已经明白了,虽然lme不能很好地处理交叉项,但lmer(可以处理交叉项)无法使用不同的协方差结构。我可以运行简单的lme模型,例如:

    lme(EDA ~ factor(CONDhier) * factor(CONDabund), random= ~1
   |part, na.action=na.exclude, data=phys2)

但更复杂的模型超出了我的能力范围。我读过在lme中交叉项可以使用随机定义来完成。

    random=pdBlocked(list(pdCompSymm(~part), pdCompSymm(~round-1), pdCompSymm(~paper-1), 
pdCompSymm(~visit-1)))

但是这似乎阻碍了AR1结构和部分*周期的第二个随机截距,而我也不确定它是否与我的SPSS语法相同。

那么,有什么建议吗?虽然关于lme和lmer有很多不同的写作,但我找不到既具有交叉项又具有AR1的写作。

(另外,lme的语法似乎相当晦涩:从几个不同的来源,我已经理解了 | 将左边的内容分组到右边的内容下面,/ 表示嵌套术语,~1 是随机截距,~x 是随机斜率,而 ~1+x 则是两者,但似乎至少还有 : 和 -1 的定义,我在任何地方都找不到。有没有教程可以解释所有不同的定义?)


2
不完整,但有关R混合模型语法的更多信息,请参见http://glmm.wikidot.com/faq#modelspec - Ben Bolker
谢谢! - RandomMonitor
5
你说 lme4 缺少“R-side”(自相关)结构(而且可能会持续一段时间,我们很忙)。我不确定(一个可重现的示例会很好),但你可能需要类似于random = pdBlocked(list(pdCompSymm(~part-1), pdCompSymm(~round-1), pdCompSymm(~paper:round), pdCompSymm(~visit:paper:round)))这样的东西……而且我不太明白你所说的“阻止AR结构”的意思。你可能想要使用correlation=corAR1()(尽管你可能在说它不起作用)。AD模型生成器/JAGS/BUGS/Stan(自行构建)是我知道的唯一开源工具,用于此目的。 - Ben Bolker
你确定你的意思是 pdCompSymm(~paper:round)pdCompSymm(~visit:paper:round),而不是反过来 - round:paperround:paper:visit 吗?我的意思是,所有的访问都发生在论文内,所有的论文都发生在轮次内,在查看您链接中的规格说明时,我觉得分组变量(| 右侧)在左侧,该变量内较小的内容在其右侧。(或者我理解错了什么?英语不是我的母语。) - RandomMonitor
我理解得对吗:冒号表示仅计算最右边变量的截距或斜率,而斜杠则表示计算组变量和其中的变量吗?此外,“阻止AR结构”是指使用pdCompSymm将定义使用复合对称性,并且我无法在此基础上再使用AR1。或者说独立的相关规范会覆盖复合对称结构? - RandomMonitor
2个回答

1
考虑使用R包MCMCglmm来实现复杂的混合效应模型。

https://cran.r-project.org/web/packages/MCMCglmm/vignettes/CourseNotes.pdf

虽然实现起来可能有些困难,但它可以解决你一直以来遇到的问题。它允许分别给出固定效应和随机效应的公式,例如:
fixed <- formula(EDA ~ CONDhier * CONDabund)
rand <- formula( ~(us(1+ CONDhier):part + us(1+ CONDhier):round + us(1+ CONDhier):paper + us(1+ CONDhier):visit))

随机效应之间的协方差结构以系数形式给出,可以在运行模型后使用summary()MCMCglmm对象上进行检查。

谢谢,下次需要的时候我会尝试这个。 - RandomMonitor

-2

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