Я использую MICE
в R
для выполнения многократного вменения многоуровневых данных.
Если только непрерывные данные требуют вменения, я успешно использовал 2l.lmer. Однако дела идут плохо, когда я пытаюсь вписать категориальные данные, то есть данные уровня 2.
(Уровень 1: повторные измерения (в рамках предметов) или субъектов (в классах) Уровень 2: постоянные времени / базовые ковариаты, между субъектамиэффекты, переменные на уровне группы)
Я пытаюсь использовать 2l.pan
в сочетании с 2lonly.norm
или 2lonly.mean
, однако я получаю сообщение об ошибке "пропущенные значения в pred не разрешены".
Я уверен, что это что-то простое.
Пожалуйста, см. Ниже для воспроизводимого примера.
Большое спасибо.
library("mice")
library("pan")
#Not multilevel to illustrate need
set.seed(100)
patid <- rep(1:3, each = 5)
day <- rep(1:5, times = 3)
crp <- c(68, 78, 93, NA, 143, 5,7,9,13,NA, 97, NA, 56, 52, 34)
sex <- rep(c("M", "F", "M"), each = 5)
sex[3] <- NA
alb <- c(23, NA, 22, 21, 20, 33, 32, 32, NA, 30, 19, 20, NA, 22, 24)
raw_data.df <- data.frame(patid, sex, day, crp, alb)
data_mice.df <- mice(raw_data.df, m = 5, maxit = 5)
complete(data_mice.df)
#pt4's crp not well predicted, and pt1 allocated wrong sex, so try multilevel
##multilevel
pred <- data_mice.df$predictorMatrix
pred[,"patid"] <- -2 #identify class variable
pred[,"day"] <- 0 #don't use time
pred
multilevel_mice <- mice(raw_data.df, method = c("","2lonly.norm","","2l.pan","2l.pan"), predictorMatrix = pred, maxit = 5)```
Error message:
iter imp variable
1 1 sex crpError in pan::pan(y1, subj, pred, xcol, zcol, prior, seed = s1, iter = paniter) :
missing values in pred not allowed