【问题标题】:Amelia imputations in R to exclude participants who did not receive the itemsR 中的 Amelia 插补以排除未收到项目的参与者
【发布时间】:2020-08-15 10:14:47
【问题描述】:

我正在尝试使用 amelia 使用单个期望最大化插补来插补我的数据。但是,我的样本中有两组,其中一些没有收到所有的调查项目。因此,我不想对这些参与者的反应进行估算。如果参与者对'Seen.Psychologist' 项目回答'yes',如果他们回答'no',则向他们提供所有项目,因为它们不相关,所以没有向他们提供16 个项目。这些参与者未收到以下变量:CulturalSafety_var"Practical""Referral""Wait.time"

我目前的估算如下。

am_imp <- amelia(x = data[, c(SafetyBehaviour_var, CulturalSafety_var, 
                              Anxiety_var, SelfStigma_var, Disclosure_var, 
                              PublicStigma_var, Motivation_var, 
                              NonAttendance_var, "Employment", "Education",
                              "Referral", "Ethnicity", "Wait.time", "Practical")], 
                 noms = c("Practical"), 
                 m = 1, 
                 boot.type = "none")

一种选择是不将这些项目包括在插补中,但随后会遇到脚本其余部分的其他问题。例如,当我将估算数据与原始数据集结合起来时。

另一种解决方法(根据我的主管的建议)如下:

  1. 仅使用每个人都应该看到的变量对整个样本进行第一轮插补。

  2. 如果参与者同意看心理学家并仅使用那些参与者,则仅使用提供的变量进行第二轮插补。

  3. 结合(rbind)来自 #2 的插补数据与那些没有看过心理学家的参与者的变量行(一大堆完全缺失的数据)

  4. 组合 (cbind) 来自 #1 和 #3 的插补数据集以及您未应用插补的任何其他剩余变量,注意数据集中参与者的顺序。

但是,这意味着插补不会那么准确,因为它们仅基于变量的子集。

我希望有一位很棒的 amelia 大师,他可能有一个建议我可以尝试....

【问题讨论】:

    标签: r imputation


    【解决方案1】:

    你的主管的建议对我来说很有意义。考虑下表:

    seen psych.  Imp. 1 (restr.)  Imp. 2 (ext.)    used
          FALSE             TRUE          FALSE  Imp. 1
           TRUE             TRUE           TRUE  Imp. 2
    

    第一列将您的样本分为两个子样本,无论是否看过心理学家。 Imp* 列指示是否包含在插补中。 used 列显示了将用于 rbind 最终数据集的内容。

    插补 1 应用于受限变量集,即对整个样本共同可用的信息。

    插补2 应用于仅可用于seen psych. == TRUE 的扩展变量集。它认为扩展变量CulturalSafety_var, Practical, ... 被估算(并且还使用其他变量进行预测!)。在这里你可以使用Imp. 1seen psych. == TRUE 的子集)作为应该已经完成​​的基础。

    used 列所示,对于seen psych. == FALSE,仅使用Imp. 1。对于seen psych. == TRUE,我们使用Imp. 2,其中包括Imp. 1 和新估算的扩展变量。 Imp. 1 变量在 Imp. 2 中不应再更改。扩展变量被赋予最大信息;您可能不会使用seen psych. == FALSE 来预测扩展变量,因为没有任何信息。

    因此,在最终的rbinded 数据集中,所有受限变量都应该是完整的,而扩展变量应该缺少seen psych. == FALSE

    (您可以考虑权衡如上所述估算 seen psych. == TRUE受限 变量之间的权衡,或者包括扩展变量以进行预测。但是,在后一种情况下只能使用seen psych. == TRUE子集进行插补,会丢失seen psych. == FALSE的所有信息,插补结果会更差。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2012-10-18
      • 1970-01-01
      • 2021-05-26
      相关资源
      最近更新 更多