#r #r-mice
#r #r-мыши
Вопрос:
У меня есть коррелированные данные, и у меня возникают проблемы с вменением данных с использованием модели случайного перехвата (из lme4). Пакет miceads, похоже, обладает такой функциональностью. Но я не могу заставить вменения работать должным образом. Я подготовил приведенный ниже пример, и любые рекомендации будут высоко оценены!
Набор данных составляет одну строку на школу на ученика. В городе 10 школ и 1600 учащихся. Есть две переменные, которые я хотел бы вменить: оценка по чтению и оценка по математике. Поскольку учащиеся в школе коррелируют, я хотел бы вменить с помощью регрессионной модели, включающей случайный перехват для школы, например lme4::lmer(reading ~ math (1|school_id), data = dat)
.
Я включил код, который я попытался использовать ниже. Файл справки для вменения lme4 из пакета miceads находится здесь: https://alexanderrobitzsch.github.io/miceadds/reference/mice.impute.ml.lmer.html
Спасибо!
library(miceadds)
library(dplyr)
data(data.ma07, package = "miceadds")
dat <-
data.ma07 %>%
select(
school_id = id2,
student_id = id1,
reading = y1,
math = y2
) %>%
as_tibble()
#----- specify levels of variables
variables_levels <- miceadds:::mice_imputation_create_type_vector(colnames(dat), value = "")
variables_levels[c("reading", "math")] <- "school_id"
#----- specify predictor matrix
predmat <- mice::make.predictorMatrix(data = dat)
predmat[, c("school_id", "student_id")] <- 0
#----- specify imputation methods
method <- mice::make.method(data = dat)
method[c("reading")] <- "ml.lmer"
method[c("math")] <- "ml.lmer"
#----- specify hierarchical structure of imputation models
levels_id <- list()
#** hierarchical structure for variables reading and math
levels_id[["reading"]] <- c("school_id")
levels_id[["math"]] <- c("school_id")
#----- assume only random intercepts
random_slopes <- NULL
#----- imputation in mice (this does not run!)
imp1 <- mice::mice(dat,
maxit = 10, m = 5, method = method,
predictorMatrix = predmat, levels_id = levels_id, random_slopes = random_slopes,
variables_levels = variables_levels
)