我在 R 中使用 mice 来估算随机丢失的数据 . 尝试在数据集中考虑条件或结构化 NAs 时,我遇到了问题 .

一个简单的数据集来说明问题:

TestData <- data.frame(Condition= c(1,1,1,1,2,NA,2,2), 
Dependent1=c(1,NA,2,3,NA,NA,NA,NA),
Dependent2=c(1,12,44,1,NA,NA,NA,NA),
Dependent3=c(NA,2,3,5,NA,NA,NA,NA), 
UnaffiliatedQ=c(1,NA,3,2,27,NA,32,35))

TestData$Condition <- factor(TestData$Condition,
                         levels = c(1,2),
                         labels = c("Yes","No"))

在此示例中,变量 Condition 是一个看门人问题,用于确定受访者是否需要填写接下来的三个问题 Dependent# . 如果受访者回答"No"并且他/她没有看到接下来的三个问题,那么他们被标记为 NA - 虽然技术上没有丢失 .

在这种情况下我该怎么办?如果我将 Condition 变量中的 NA 值与 Dependent1Dependent2Dependent3 中的值一起归入 NA 值,我如何确保我不会在 Dependent# 中找到没有意义的值?

我已经考虑过可能的解决方案,但我认为没有任何解决方案是有效的或者是个好主意,例如,创建一个结构化的缺失值,例如 -999 基于条件答案对数据帧进行子集化 .

在阅读 mice 作者的文档和论文时,我在 mice 中没有看到任何关于此类情况的论点 . 另一种选择是,我只是在多次插入的兔子洞中运行,这不是正确使用它 .