对于那些没有输血的人,将音量参数设置为 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。我没有太多关于您的数据和缺失数据的信息,因此此选项可能不适用。