我一直在对我的数据运行一些多级模型,但现在被告知我的集群太小了,我需要考虑取出两个级别并将它们作为 covaraites(虚拟变量)添加。我试了一下,它没有不行。
为了提供一些背景信息,我将测试前和测试后的分数作为结果变量。我有长格式的数据。我一直在使用 nlme 包。
我有孩子嵌套在学校嵌套的类中。我的原始模型包括参与者(n=303)、班级(n=17)和学校(n=10)作为随机斜率的三个级别的传销,但我也增加了随机截距的时间。
由于嵌套集群不够大,基于新的建议上课和上课,我打算让参与者保持随机斜率和随机截距的时间。
我对 R 还很陌生,如果我犯了一些简单的错误,我也很抱歉。
我想我的问题是: 1. 添加班级和学校作为虚拟变量的新技术是最好的方法吗?我已经阅读了有关使用 FEM(固定效应模型)作为聚类数据的稳健方法的信息,但不确定这是否与我实际尝试运行的方法相对应 2. 有没有办法解决我的模型问题和我得到的输出(MEEM 中的错误(对象,conLin,control$niterEM):在级别 0,块 1 的反向求解中的奇点)当我取出类或代码时发现它有效,但这并不是真正的解决方案。
任何建议、解决方案或指导将不胜感激,谢谢。
旧型号:
model1 <- lme(MASSATTS ~ Time*Condition,
data = cdata,
method = "ML",
na.action = "na.omit",
random = ~ Time|School/Class/Code,
control = list(opt = "optim"))
新代码:
model1 <- lme(MASSATTS ~ Time*Condition + School + Class,
data = cdata,
method = "ML",
na.action = "na.omit",
random = ~ Time|Code,
control = list(opt = "optim"))
Error in MEEM(object, conLin, control$niterEM) : Singularity in backsolve at level 0, block 1