Многократное вложение многоуровневых данных
Я использую пакет Mice в R для многократного вложения многоуровневых данных, где повторяющиеся измерения вложены в отдельных лиц. Но у мышей есть ошибка, из-за которой нам нужно преобразовать групповую переменную (здесь индивидуумы) в целочисленный тип для использования метода "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: я новичок с множественным вменением, пожалуйста, извините, если это очевидные вопросы. Также я узнал о пассивном вменении, которое работает как mutate для mids. Я попытался также создать новую переменную и определить для нее метод как "~I(as.factor(STIDnum)))", но он дает NA для всех случаев. Есть ли другой способ сравнить ICC наблюдаемых / вмененных данных и какой подход мы должны использовать, если ICC вмененных данных меньше наблюдаемых данных. Спасибо заранее.