R:使用 lme4、mice 和 mouseadds 包进行多重插补

问题描述

我有相关数据,但我无法使用随机截距模型(来自 lme4)来估算数据。 mouseadds 包似乎具有此功能。但我无法让插补正常工作。我已经准备好了下面的例子,任何指导将不胜感激!

数据集是每所学校每名学生一行。有10所学校和1600名学生。我想估算两个变量:阅读分数和数学分数。由于学校内的学生是相关的,我想用一个回归模型来估算,包括学校的随机截距,例如lme4::lmer(reading ~ math + (1|school_id),data = dat)

我已经包含了我在下面尝试过的代码。来自 mouseadds 包的 lme4 插补的帮助文件在这里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
)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)