拟合混合模型时出错:观察数 <= 随机效应数

Error in fitting mixed model: number of observations <= number of random effects

我正在尝试拟合多个混合线性模型。

 summary(model3 <- lme4::lmer(LPP2POz ~ COND + (COND|ID), data = dataLPP2POz))

其输出是

Error: number of observations (=75) <= number of random effects (=75) for term (COND | ID); the random-effects parameters and the residual variance (or scale parameter) are probably unidentifiable

谁能弄清楚为什么这个模型会回退这个错误?

这是数据集:

> dput(head(dataLPP2POz))
structure(list(ID = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("01", 
"04", "06", "07", "08", "09", "10", "11", "12", "13", "15", "16", 
"17", "18", "19", "21", "22", "23", "25", "27", "28", "30", "44", 
"46", "49"), class = "factor"), GR = c("RP", "RP", "RP", "RP", 
"RP", "RP"), SES = c("V", "V", "V", "V", "V", "V"), COND = structure(c(1L, 
2L, 3L, 1L, 2L, 3L), .Label = c("NEG-CTR", "NEG-NOC", "NEU-NOC"
), class = "factor"), LPP2POz = c(7.91468942320841, 9.94838815736199, 
10.2186482048953, 1.07455889922813, 1.65917850515029, 3.22422743232682
)), row.names = c(NA, 6L), class = "data.frame")

规范COND + (COND|ID)表明条件的影响是固定的,条件的影响是随机的;也就是说,每个 individual/condition 组合都会获得一个随机效应值。大约

y_ij = alpha_i + epsilon_{c,ij} + epsilon_{r,ij}

(虽然这并不是 lmer 参数化它的方式); alpha_i 是条件 i 的固定效应,epsilon_{c,ij} 是条件 i 对个体 j 的随机效应,而 epsilon_{r,ij}条件i/个体j的残差。问题是 因为每个人在每种情况下只被测量一次,所以这两个 epsilon 术语是混淆的(共同无法识别)

  • 正如@Bloxx 所说,您可以通过在 lmer() 调用中指定 control = lmerControl(check.nobs.vs.nRE = "ignore") 来强制 lmer 适合模型。但是,如果你这样做,你将无法解释随机效应协方差矩阵,除非你 expert/really 知道你在做什么(固定效应应该仍然可以)。
  • 如果你想在 glmmTMB 中拟合相同的模型,你可以设置 dispformula = ~0 将残差方差归零(实际上它被设置为一个非常小但非零的值...... )
  • 对于一些更简单的模型(但不是这个),如 this example,您可以简化随机效应模型,使其不再与残差方差项冲突。例如,如果您的模型是 (1|ID/COND)(即 IDCONDID 内的复合对称 model/intercept 变体,相当于 (1|ID) + (1|ID:COND) ) 您可以通过删除嵌套项(与残差项完全相同)并将模型简化为 (1|ID).
  • 来解决问题