如何限制老鼠期间的价值观归责

How to restrict imputation of values during mice

我正在使用 mice 包来估算数据,并且我已经阅读了有关 post 处理以限制估算值的内容,但是我所阅读的所有内容都是关于将值限制在某个范围内的。我输入的变量之一是输血总量。然而,在我的数据集中,并不是每个人都输过血。我将这个(transfused/not 输血)作为我数据中的二进制变量。我需要做到这一点,以便没有输血的人具有 NA 值。以下是我所做的,但它不起作用

post["ml"]<-"imputedneonates[[j]][p$data$transfused[!r[,j]]==0,i]"<-NA

对于那些没有输血的人,将体积参数设置为 0 会更有意义。这是一个例子:


require(mice)

set.seed(314)
transfusion <- data.frame(transfused = sample(c(1,0,NA), 100, prob = c(.8,.15,.05), replace = T),
                          age = rnorm(100,6,2)) %>%
  mutate(volume = if_else(transfused == 1,rnorm(nrow(.),250,50),as.numeric(NA))) %>%
  mutate(volume = if_else(sample(c(TRUE,FALSE),nrow(.),prob = c(0.1,0.9), replace = T),as.numeric(NA),volume))


ini <- mice(transfusion, maxit = 0)
post <- ini$post

post["volume"] <- "imp[[j]][data$transfused[!r[, j]] == 0, i] <- as.numeric(0)"
imp <- mice(transfusion, post=post, print=FALSE)

complete(imp)

另一个建议是完全不估算 transfused,而只估算体积,然后在估算后或使用被动估算后计算 transfused。我没有太多关于你的数据和缺失数据的信息,所以这个选项可能不适用。