我有一个线性混合模型中的两个因素。将因素A视为固定效应,将因素B视为随机效应并嵌套在因素A中。请问如何使用nlme R包进行建模?
我知道lme( response~ factorA, random=~1|factorA/factorB)
是一种建模方法。但是,这个函数将因素A视为随机效应。
我有一个线性混合模型中的两个因素。将因素A视为固定效应,将因素B视为随机效应并嵌套在因素A中。请问如何使用nlme R包进行建模?
我知道lme( response~ factorA, random=~1|factorA/factorB)
是一种建模方法。但是,这个函数将因素A视为随机效应。
factorB
标识的群组内。这些群组进一步被嵌套在由 factorA
标识的更大群组内。你不希望这个层次结构的最高级别有自己的随机截距项。相反,你只用因子作为固定效应来建模变异。好的,那么剩下的就是允许截距在 factorB
中变化。这正是 DWin 建议的。lme(response ~ factorA, random=~1|factorB)
然而,目前并不完全清楚这是否是您真正想要的。从您提出的问题中也无法确定您的数据真实结构。如果您更新问题,我会相应地更新答案。
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)
dat$factorAB <- with(dat, factor(paste(factorA, factorB), sep="."))
与 factorA:factorB
相同,除了用于分隔组合的字符。 - ndooganfactorB
可以唯一标识每个数据点(我知道我们不知道),那么允许参数在该因子上变化会重复残差误差项(即可能不被允许)。 - ndoogan:
和paste
确实有非常相似的结果,尽管:
会为每个组合创建级别,即使该组合不存在。我认为在公式中使用:
是可行的,但应该检查任何额外的级别是否会引起问题,并确保公式机制适当地处理:
。 - Aaron left Stack Overflow
lme( response~ factorA, random=~1|factorB)
呢? - IRTFMfactorB
的水平之间是随机的,DWin的第一个建议似乎是合理的。 - ndoogan