我正在尝试使用 R 中的 mouse 包对多级模型进行多重插补。我按照here和here中列出的步骤来设置我的预测矩阵。然而,提供的示例仅包含预测矩阵数据集中不超过 7 个变量。 当数据集中有很多变量时我该怎么办?
我是否必须对我想要估算的每个变量重复此操作(见下文-pred)? (总共19个变量,还有4个虚拟变量)看起来非常乏味..
#create imputation model for Race_R
pred["Race_R", c("a","SchlPre","c", "Age",
"Gender","Race_R", "Ethnicity","EnrDipType",
"DemHHInc_Rnum","IQ","ABC_SS","d",
"SD","GASEndMnAcad","wj3","a1","a2",
"DemHHIncx","DemHHIncy")] <- c(0, -2, 1, 1, 1, 0, 1, 1, 1,1,1,1,1,1,1,0,0,0,0)
我还尝试使用
进行插补imp <- mice(data, pred = pred, meth = impmethod, seed = 919,
m = 10, print = FALSE)
但最终得到了一堆边界(奇异)拟合:请参阅 help('isSingular'),并且没有生成插补数据。我该如何解决这个问题?谢谢!!
预测矩阵不必手动创建。有两个
mice
函数可用于此任务。然后可以根据多级插补的需要修改生成的对象。
# load packages
library(mice, quietly = TRUE)
library(ggmice, quietly = TRUE)
# example data
head(boys)
#> age hgt wgt bmi hc gen phb tv reg
#> 3 0.035 50.1 3.650 14.54 33.7 <NA> <NA> NA south
#> 4 0.038 53.5 3.370 11.77 35.0 <NA> <NA> NA south
#> 18 0.057 50.0 3.140 12.56 35.2 <NA> <NA> NA south
#> 23 0.060 54.5 4.270 14.37 36.7 <NA> <NA> NA south
#> 28 0.062 57.5 5.030 15.21 37.3 <NA> <NA> NA south
#> 36 0.068 55.5 4.655 15.11 37.0 <NA> <NA> NA south
# create full predictor matrix and visualize
pred <- make.predictorMatrix(boys)
plot_pred(pred)
# better: create pruned predictor matrix and visualize
pred <- quickpred(boys)
plot_pred(pred)
# make region the clustering variable for all imputations
pred[, "reg"] <- -2
plot_pred(pred)
# impute all variables with random effects
pred[pred == 1] <- 2
plot_pred(pred)
创建于 2023-12-07,使用 reprex v2.0.2