如何解决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 举报,一经查实,本站将立刻删除。