执行摘要
确实经常说,如果所有可能的因子水平都包含在混合模型中,则应将此因子视为固定效应。对于两个不同的原因,这不一定是正确的:
(1)如果电平的数量是大的,那么它可以是有意义的治疗[交叉]因子作为随机的。
我在这里与@Tim和@RobertLong都同意:如果一个因素具有模型中都包含的大量水平(例如,世界上所有国家;或一个国家中的所有学校;或者可能是被调查者等),那么将其视为随机对象并没有错---这可能更简化,可能会导致缩水等。
lmer(size ~ age + subjectID) # fixed effect
lmer(size ~ age + (1|subjectID)) # random effect
(2)如果因子嵌套在另一个随机效应中,则必须将其视为随机因子,而与其级别数无关。
有在这个线程一个巨大的混乱(见注释),因为其他的答案是关于案例#1以上,但你给的例子是的例子不同的情况,即这种情况下,#2。这里只有两个级别(即根本不是“很大”!),它们确实耗尽了所有可能性,但它们嵌套在另一个随机效果内,从而产生嵌套的随机效果。
lmer(size ~ age + (1|subject) + (1|subject:side) # side HAS to be random
您的示例的详细讨论
假想实验中的面和主题与标准分层模型示例中的班级和学校一样相关。也许每个学校(#1,#2,#3等)都有A类和B类,并且这两个类应该大致相同。您不会将A类和B类建模为具有两个级别的固定效果。这将是一个错误。但是您不会将A类和B类建模为具有两个级别的“分离”(即交叉)随机效果;这也是一个错误。相反,您可以将班级建模为学校内部的嵌套随机效应。
请参阅此处:交叉与嵌套随机效应:它们有何不同?如何在lme4中正确指定它们?
i = 1 … nĴ = 1 ,2
尺寸我Ĵ ķ= μ + α ·&身高我Ĵ ķ+ β⋅ 重量我Ĵ ķ+ γ⋅ 年龄我Ĵ ķ+ ϵ一世+ ϵ我Ĵ+ ϵ我Ĵ ķ
ϵ一世〜ñ(0 ,σ2š ü b Ĵ Ê Ç 吨小号),随机拦截每个主题
ϵ我Ĵ〜ñ(0 ,σ2主体),随机整数。用于侧面嵌套在主题中
ϵ我Ĵ ķ〜ñ(0 ,σ2噪声),错误项
如您所言,“没有理由相信右脚平均会比左脚大”。因此,右脚或左脚根本不应该有“全局”效应(固定或随机交叉);取而代之的是,每个对象都可以认为是“一只”脚和“另一只”脚,因此我们应该在模型中包括这种可变性。这些“一只”和“另一只”脚嵌套在对象内,因此嵌套了随机效果。
有关评论的更多详细信息。[9月26日]
我上面的模型将Side包含为Subject中的嵌套随机效果。这是@Robert建议的替代模型,其中Side是固定效应:
尺寸我Ĵ ķ= μ + α ·&身高我Ĵ ķ+ β⋅ 重量我Ĵ ķ+ γ⋅ 年龄我Ĵ ķ+ δ⋅ 侧面Ĵ+ ϵ一世+ ϵ我Ĵ ķ
我向@RobertLong或@gung提出挑战,以解释该模型如何处理针对同一主题的同一边的连续测量而存在的依存关系,即具有相同数据点的依存关系我Ĵ组合的。
这不可以。
对于@gung的假设模型,Side作为交叉随机效应也是如此:
尺寸我Ĵ ķ= μ + α ·&身高我Ĵ ķ+ β⋅ 重量我Ĵ ķ+ γ⋅ 年龄我Ĵ ķ+ ϵ一世+ ϵĴ+ ϵ我Ĵ ķ
它也无法考虑依赖关系。
通过模拟进行演示[10月2日]
这是R中的直接演示。
我生成了一个玩具数据集,其中连续五年对双脚测量了五个对象。年龄的影响是线性的。每个对象都有一个随机截距。每个对象的一只脚(左脚或右脚)都比另一只脚大。
set.seed(17)
demo = data.frame(expand.grid(age = 1:5,
side=c("Left", "Right"),
subject=c("Subject A", "Subject B", "Subject C", "Subject D", "Subject E")))
demo$size = 10 + demo$age + rnorm(nrow(demo))/3
for (s in unique(demo$subject)){
# adding a random intercept for each subject
demo[demo$subject==s,]$size = demo[demo$subject==s,]$size + rnorm(1)*10
# making the two feet of each subject different
for (l in unique(demo$side)){
demo[demo$subject==s & demo$side==l,]$size = demo[demo$subject==s & demo$side==l,]$size + rnorm(1)*7
}
}
plot(1:50, demo$size)
很抱歉我的R技巧很抱歉。这是数据的样子(多年来连续测量的每个五个点是一个人的一英尺;每个连续的十个点是同一人的两英尺):
现在我们可以拟合一堆模型:
require(lme4)
summary(lmer(size ~ age + side + (1|subject), demo))
summary(lmer(size ~ age + (1|side) + (1|subject), demo))
summary(lmer(size ~ age + (1|subject/side), demo))
所有模型都包含的固定效应age
和的随机效应subject
,但对待方式side
有所不同。
side
age
t = 1.8
side
age
t = 1.4
side
age
t = 37
这清楚地表明 side
应将其视为嵌套随机效应。
最后,@ Robert建议在评论中包括side
作为控制变量的全局效果。我们可以做到,同时保持嵌套的随机效果:
summary(lmer(size ~ age + side + (1|subject/side), demo))
summary(lmer(size ~ age + (1|side) + (1|subject/side), demo))
side
t = 0.5side