我在线性混合模型中有两个因素。因子A被视为固定效应,因子B被视为随机效应并嵌套在因子A中。任何人都可以告诉我如何使用nlme R包来做到这一点吗?
我知道lme( response~ factorA, random=~1|factorA/factorB)
是建模的一种方式。但是,此功能将因子A视为随机效应。
答案 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)