我正在R中使用Mice软件包对多个级别的数据进行多次插补,其中重复的度量嵌套在个人中。但是,鼠标中存在一个错误,我们需要使用“ mice.2l.norm / mice.2l.pan”方法对小鼠进行插补,以考虑聚类,从而需要将组变量(此处为个体)转换为整数类型。
(我无法发布数据快照)我的分组变量(STIDnum)是一个因子变量,因为我想检查插补前后的ICC值
对于插补,我已将STIDnum转换为整数变量,但问题是如何在插补后将其重新转换为mids对象中的因子?这是我用来计算ICC的代码
data.frame(vars = names(w[c(6:10)]),
observed = c(ICC1(aov(meanscore~STIDnum,w)),
ICC1(aov(otdif~STIDnum,w)),
ICC1(aov(pros~STIDnum,w)),
ICC1(aov(otdif_T~STIDnum,w)),
ICC1(aov(pros_T~STIDnum,w))),
norm = c(ICC1(aov(meanscore~STIDnum,complete(imp1))),
ICC1(aov(otdif~STIDnum,complete(imp1))),
ICC1(aov(pros~STIDnum,complete(imp1))),
ICC1(aov(otdif_T~STIDnum,complete(imp1))),
ICC1(aov(pros_T~STIDnum,complete(imp1)))))
这是我用于多重插补的代码
w1<-subset(w,!is.na(Grade))
w1$studentid<-NA
ini<-mice(w1,maxit = 0)
pred<-ini$pred
pred[c("STIDnum","RCT_GROUP","Female","Time","Grade","studentid"),]=0
meth<-ini$method
meth["Grade"]<-""
meth["otdif"]<-"2l.pan"
meth["pros"]<-"2l.pan"
meth["otdif_T"]<-"2l.pan"
meth["pros_T"]<-"2l.pan"
meth["pros"]<-"2l.pan"
meth["meanscore"]<-"2l.pan"
meth["studentid"]<-"~I(as.character(STIDnum))"
meth["studentid"]<-"~I(as.numeric(studentid))"
pred["otdif",]=c(-2,1,1,1,2,0,1,1,1,1,0)
pred["pros",]=c(-2,1,1,1,2,1,0,1,1,1,0)
pred["otdif_T",]=c(-2,1,1,1,2,1,1,0,1,1,0)
pred["pros_T",]=c(-2,1,1,1,2,1,1,1,0,1,0)
pred["meanscore",]=c(-2,1,1,1,2,1,1,1,1,0,0)
w1$STIDnum<-as.character(w1$STIDnum)
w1$STIDnum<-as.integer(w$STIDnum)
impmultilevel<-mice::mice(data=w1,maxit=10,m=30,imputationMethod = meth,
predictorMatrix = pred)
我也收到警告-记录的事件数:1 归因后。
PS:我是一位具有多种归因的初学者,如果这些是显而易见的问题,请原谅。我也了解了被动插补,该插补可以用作中点的突变,我尝试过创建一个新变量并将其方法定义为“〜I(as.factor(STIDnum))”,但在所有情况下均给出NA。还有其他比较观察/估算数据的ICC的方法吗?如果估算数据的ICC小于观察数据的ICC应该使用哪种方法?