3

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

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

4

2 回答 2

4

这取决于变量的编码方式。中的变量可能有不同的名称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)
于 2013-05-09T01:50:09.480 回答
4

看来您的数据结构使得对个人的观察嵌套在由 标识的组中factorB。这些组进一步嵌套在由 标识的更大的组中factorA。您不希望此层次结构的最高级别拥有自己的随机截距项。相反,您只需使用作为固定效应包含的因素来模拟变化。美好的。然后剩下的就是让截距在factorB. 这正是DWin 所建议的。

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

但是,这是否真的是您想要的并不完全清楚。从您写的问题中也不清楚您的数据的真实结构是什么。如果您更新问题,我将更新此答案以适应。

于 2013-05-09T01:37:23.213 回答