面向数据科学的R中的混合与匹配
在过去的几个月中,我花了很多时间尝试提高因果推理的统计子领域的技能。
因果推论过于简化,它包含了一系列方法和技术,以帮助分析师实现从关联或相关性到因果关系的跳跃。从注意到因子X和Y之间的相关性到得出X导致Y的合理结论,如何发展?例如,X和Y之间的关联可能来自X引起Y,Y引起X或X和Y都受第三因子Z影响。因果推理领域旨在解决这些可能性。
因果推理的铂金设计是将受试者随机分配到不同治疗组的实验。通过随机化,不受控制的因素或混杂因素(Z值)的影响应在抽样限制内,在X的处理或X值之间达到“相等”或“平衡”。在“受控” Z值的这种情况下,分析师要更有信心X和Y之间的相关性实际上表示因果关系。
但是,在数据科学世界中通常看到的现场数据收集方案又如何呢?在这种情况下,数据是可观察的,混杂因素可以自由漫游?该怎么办?答案:考虑因果推断技术,尝试从统计学上模拟随机实验。
多年前,我例行部署了协方差方法的分析,该方法直接在线性模型中包含了混杂因素。如果X的系数比混杂系数更好,则X会导致Y。这不是一个非常引人注目的解决方案。多年来,我尝试了倾向得分,试图将混杂因素汇总为单个得分。然后是类似下面使用的匹配技术。匹配背后的想法是组成一个对照组,该组看上去与处理混杂因素有关。如果成功,混杂因素将达到平衡,因此其他事物也将基本相等-因此X和Y之间的牢固残差关系是因果关系的证据。就是说,提供了关键的可燃性假设,即所有重要的混杂因素都已被先验确定。
在网上搜索CM教学法时,我遇到了一个精心组织的中级Coursera课程,“因果关系速成班:从观察中推断因果效果...”。事实证明,这正是统计医生所订购的。我花了一天的时间来吸收Jason Roy教授的许多无障碍演讲,包括在R中工作的完整分析示例。然后,我将学到的知识用我自己的R代码应用于我自己的数据。
接下来是将匹配技术应用于来自美国社区调查普查数据的数据。我要问的问题是,拥有终端硕士学位的样本受访者是否比拥有终端学士学位的受访者收入更高。因此,治疗是MA,对照是BA。被考虑的混杂因素包括年龄(MA受访者年龄较大),性别(MA受访者女性较多)和婚姻状况(MA受访者更有可能结婚)。
首先,我将所有终端单身汉和硕士回答者归入一个数据集。然后,我从这些案例中随机抽取25万个样本。最后,我将处理(具有终端MA)匹配到控制(具有终端BA)。然后,我为识别出的混杂因素调用R MatchIt包以进行密集,贪婪,最近的邻居匹配。此过程最终会为每个治疗记录生成一个带有单个匹配控件的R data.table。事实证明,MA的受访者确实的平均收入确实比BA的高得多。但是,当与混杂因素相匹配时,平均年均差额将减少2500美元以上。这是有道理的,因为除其他因素外,MA样本平均比BA样本要早几年。
使用的技术是带有Microsoft Open R 3.4.4的JupyterLab。为了进行匹配,将部署MatchIt和tableone软件包。
1