如何在nlme包中建模嵌套随机效果

时间:2013-05-09 00:04:37

标签: r

我在线性混合模型中有两个因素。因子A被视为固定效应,因子B被视为随机效应并嵌套在因子A中。任何人都可以告诉我如何使用nlme R包来做到这一点吗?

我知道lme( response~ factorA, random=~1|factorA/factorB)是建模的一种方式。但是,此功能将因子A视为随机效应。

2 个答案:

答案 0 :(得分:4)

似乎您的数据结构化使得个人观察嵌套在由factorB标识的组中。这些组进一步嵌套在由factorA标识的较大分组中。您不希望此层次结构的最高级别拥有它自己的随机拦截术语。相反,您只需将因子作为固定效果进行模型变化。精细。然后剩下的就是允许截距在factorB之间变化。这正是 DWin 所建议的。

lme(response ~ factorA, random=~1|factorB)

但这并不完全清楚,这确实是你想要的。还不清楚数据的真实结构来自您编写的问题。如果您更新问题,我会更新此答案以适应。

答案 1 :(得分:3)

这取决于您的变量的编码方式。 factorB中的变量可能有不同的名称,如下所示;然后将factorB作为随机效应就足够了。

factorA  factorB
bob      bob1
bob      bob2
bob      bob3
jane     jane1
jane     jane2
jane     jane3

lme(response ~ factorA, random=~1|factorB)

但是对于factorB的每个级别,您可能对factorA中的变量编码相同,就像这样;然后只是将factorB作为随机效果是不正确的;你需要将随机效果作为它们之间的交互,我认为使用:的代码可以工作,但是创建一个新变量可能更具可读性。

factorA  factorB
bob      rep1
bob      rep2
bob      rep3
jane     rep1
jane     rep2
jane     rep3

lme(response ~ factorA, random=~1|factorA:factorB)

dat$factorAB <- with(dat, factor(paste(factorA, factorB), sep="."))
lme(response ~ factorA, random=~1|factorAB)