R中的Amelia归因排除未收到项目的参与者

问题描述 投票:1回答:1

第一次发布,希望有所帮助。

[我正在尝试使用amelia来通过单个期望最大化估算来估算我的数据。但是,我的样本中有两个小组,其中一些没有收到所有调查项目。因此,我不想为这些参与者做出回应。如果参与者对'yes'项目回答'Seen.Psychologist',则向他们展示所有项目;如果他们回答'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.将(#2)的推算数据与变量上的行合并在一起,以供未曾见过心理学家的参与者使用(一大堆完全丢失的数据)4.合并(绑定)来自#1和#3的推算数据集以及未应用推算的任何其他剩余变量,请注意数据集中参与者的排序。

然而,这意味着归因于仅基于变量的子集而不会那么精确。

我希望有一个很棒的阿米莉亚大师,他可能会建议我可以尝试....

预先感谢,感谢您阅读我的冗长的问题:)

r imputation
1个回答
0
投票

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

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

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

Imputation 1应用于限制变量集,即可共同用于整个样本的信息。

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

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

因此,在最终的rbind数据集中,所有限制变量都应完整,并且扩展变量应缺少seen psych. == FALSE

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

© www.soinside.com 2019 - 2024. All rights reserved.