用小鼠进行R插补

用小鼠进行R插补,r,data.table,r-mice,R,Data.table,R Mice,但是我如何将数据插补的插补值与学生和结果结合起来呢?我担心我会合并错误,这就是为什么我询问您对此是否有建议。一种可能性是在插补中使用完整的数据集,但更改预测矩阵,以便在插补模型中不使用学生和结果 首先,您需要运行鼠标,以提取预测矩阵(不计算插补)。然后可以将插补模型中不应包含的所有列设置为0。但是,所有变量仍包含在dataIMPUTE对象中: library(mice) dataIMPUTE=mice(data[, c("X1", "X2", "

但是我如何将数据插补的插补值与学生和结果结合起来呢?我担心我会合并错误,这就是为什么我询问您对此是否有建议。

一种可能性是在插补中使用完整的数据集,但更改
预测矩阵
,以便在插补模型中不使用
学生
结果

首先,您需要运行
鼠标
,以提取
预测矩阵
(不计算插补)。然后可以将插补模型中不应包含的所有列设置为0。但是,所有变量仍包含在
dataIMPUTE
对象中:

library(mice)
dataIMPUTE=mice(data[, c("X1", "X2", "X3")], m = 1)
set.seed(1)
库(数据表)
数据=数据表(学生=1:1000,
结果=样本(20:90,r=T),
X1=runif(1000),
X2=runif(1000),
X3=运行时(1000))

你能改变你的例子吗。我得到一个错误
鼠标(数据[,(X1,X2,X3)],m=1)#编辑设置错误(数据,设置…):
鼠标`检测到常数和/或共线变量。`@akrun现在全部更新感谢bunch出于某种原因,我得到错误
鼠标(数据[,c(“X1”,“X2”,“X3”)],m=1)#编辑设置错误(数据,设置,…):鼠标
检测到常数和/或共线变量。移除后没有留下任何预测因子`
library(mice)
dataIMPUTE=mice(data[, c("X1", "X2", "X3")], m = 1)
set.seed(1)
library(data.table)
data=data.table(STUDENT = 1:1000,
                OUTCOME = sample(20:90, r = T),
                X1 = runif(1000),
                X2 = runif(1000),
                X3 = runif(1000))
index_1 <- sample(1:1000, 100)
index_2 <- sample(1:1000, 100)
index_3 <- sample(1:1000, 100)
data[index_1, X1 := NA_real_]
data[index_2, X2 := NA_real_]
data[index_3, X3 := NA_real_]

library(mice)
init <- mice(data, maxit = 0, print = FALSE)

# extract the predictor matrix
pred_mat <- init$predictorMatrix

# remove STUDENT and OUTCOME as predictors
pred_mat[, c("STUDENT", "OUTCOME")] <- 0

# do the imputation
dataIMPUTE = mice(data, pred = pred_mat, m = 1)