打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
二分类变量的数据缺失插补
编辑推荐

数据的缺失一直是数据分析工作中难以回避的痛点,对于常用的二分类变量也不例外。在实际工作中要怎样处理这样的难题呢?今天的文章,我们就来提供一些非常实用的方法。


昨天在地铁上,有人试图跟我旁边的女孩子打广告。“您是哪里人?”他问。她犹豫着不想说话。“好吧,”他又说,“那您是沿海城市的吗?”

“不是,”她答道,这次不怎么犹豫了。

通常,二分类变量有两种至关重要的作用:对于数据源即客户来说,以二分类方式表现的信息似乎没有那么尖锐、危险,不会引起反感。比如,我们在填写一些调查问卷时,对于直接调查收入的问题可能弃置不顾,但如果对方只是让你选择“月薪1万元以上”还是“月薪1万元以下”,你或许就没那么介意了。

另一方面,对于数据使用者来说,你月薪是否高于1万元信息也足够他做出有效的决定,像是要不要发给你某些高端产品广告之类的。银行决定要不要发放给你贷款,也只需要知道,你是“好客户”还是“坏客户”、应该“批准”你还是“拒绝”你。

这样,二分类变量是我们最常接触、也最常使用的数据类型之一。“是”或者“否”,“有”或者“无”,“已发生”或者“未发生”,在任何数据分析工作中,这样非此即彼的输入数据都不可或缺,更常常用在各类回归分析之中。

然而,我们使用的大部分标准统计方法都假设用于分析的数据是完整的,而数据缺失的现象也是始终客观存在的:缺失数据一直都是数据分析中普遍存在又无法回避的一个问题。

要对付二分类变量的数据缺失,最简单的方法就是——删除。好吧,你可能觉得这也太敷衍了,但删除法确实简单、容易操作,不需要特别的计算方法且适用于任何类型的统计分析;缺陷也很显著——都直接删除了怎么可能没有缺陷——时间点上的数据可能不连续,而且,当缺失机制是完全随机缺失(MCAR)时,根据Paul Allison2001年的研究结果,使用删除缺失数据后的数据得到的估计值往往会偏大。

如果不能删除,自然只有试图补全了,这也就是我们今天要介绍的“插补法”。插补法的优点在于可以尽量使信息损失最小化、保持了数据的完整性,但同时,由于缺乏方法检验插补的假设是否被满足,并不存在所谓最优的插补法。

插补法的基本思想,是对每一个缺失值寻找一个或多个尽可能相似的值进行插补,为了实现这个目标,通常需要找到一系列与含有缺失值的目标变量有联系的辅助变量T。在实际应用中,对自变量X的插补显然更有意义,因此,本文进行研究的前提是:在MCAR的机制下,二分类变量X的数据存在缺失数据,但与之相关的辅助变量T不存在缺失数据。根据对每个缺失值进行插补的次数,插补法可以分为单一插补法和多重插补法。


单一插补法


单一插补法是较为简单的一种。假设X是取值为0或1的二分类变量,pi=p(xi=1|ti)是给定辅助变量ti=(t1i, ......, tji)的条件下得到xi=1的条件概率,对于一个给定的常数c(0<><>pi>c时,令xi=1;当pi=c时,令xi=0。选取有效的辅助变量的前提下,首先根据完整的r组观测数据(xi, t1i, ......, tji)建立回归模型,也就是Logistic回归模型:



其次对模型的参数进行估计,得到

然后利用参数估计后的回归模型对缺失数据进行插补。


多重插补法


多重插补法的步骤是做M>1次互相独立的插补,对于同一个参数

M个插补数据集中得到M个估计
,然后用
对参数进行估计。在二分类变量缺失的情况下,为了构造多重随机插补,在多重插补中的每次独立插补中需要随机估计Logistic回归模型系数。在这里,我们采用近似贝叶斯bootstrap插补法构造随机插补集,它的优良性质可以保证多重插补的效度;然后利用插补集的数据对Logistic回归模型系数进行参数估计,进而对缺失数据进行多次预测实现多重插补。

近似贝叶斯bootstrap法的步骤为:

1)从已观测的y值中有放回的抽出一个样本数为r的随机样本;

2)从步骤(1)中得到的样本中在抽出样本数为n-r((n-r)<>的随机样本用来插补缺失值。

在使用近似贝叶斯bootstrap法进行多重插补时,为了发挥效度最大,若n=2k,建议取r=k;若n=2k+1,建议取r=k+1

但近似贝叶斯bootstrap插补法也有缺陷,即无法推导出多重插补的M究竟取多少合理。取值过于大的M会造成多重插补的计算量和数据存储空间都增加,并且对估计量带来偏差增大等不好的影响,这给其应用带来不便。在推到运算很困难或者推到无法解决时,借助数据模拟可以很好的解决问题,我们利用模拟数据,根据缺失比例的不同,给出M的经验值以及影响因素,供大家在实践应用时参考。


实证模拟分析


我们以一组模拟数据为例,并假设这样一个场景:

连锁酒店A打算推出一系列高端酒店品牌,适用对象为经常出差的高消费商旅人士,比如公司高管等;在具体项目实施之前,酒店打算先对目标客户进行调查访谈,以便接下来进行精准营销工作。

A酒店拥有曾入住客户的身份信息,对客户的消费水平有大致了解,但酒店认为与出行相关的数据也同样重要。因此,铁路公司R为酒店提供了若干数据,而为避免客户信息泄露起见,这些数据是以二分类变量的形式提供的,其中的字段包括:客户是否乘坐商务舱?每月出行频率多少次?出发地是否为一线城市?目的地是否为一线城市?……然而,由于R公司的数据建设尚不健全,其中“是否乘坐商务舱”的字段存在变量缺失,需要补全。

我们的模拟数据共有1000组观测值,其中,反应变量business是指客户是否乘坐商务舱,是则取值为1,否则取值为0。辅助变量有3个,trip表示每月平均出行次数,这里指客户的月平均出行次数与所有乘客平均出行次数之间的离差;depart与destination分别表示出发地与目的地的城市类型,一线城市取值为1,非一线城市取值为0。

使用这1000组观测值,利用SAS的proc logistic过程,就可以检验trip, depart和destination这三个辅助变量对响应变量business是否有效。建立模型如下:



模型拟合的效果好坏可以通过指标AIC和SC来反映:


由上表可见,AICSC的值均较大,模型拟合程度较好。以下是模型参数估计和检验结果:


在显著性水平alpha=0.05时,模型参数通过检验。分析结果显示,使用depart, trip和destination这三个辅助变量对二分类变量business进行回归预测是有效的。

由于二分类变量business的取值是01,本文通过模型估计值和已知真值做对比,以正确判断率作为模型拟合的效果。在模型有效的前提下,在实际问题中还需要确定常数,一般情况下常数c的经验值是0.5左右。本文选取0.5左右的值进行多次试验,得到常数c在取0.49时,模型的预测效果最佳,因此若pi<>,则取business(i)=0,若pi>0.49,则取business(i)=1。原始数据中business真实取值为0665个,取值为1335个;通过原始数据拟合的模型对business进行估计,估计值为0701个,取值为1299个。由此可知,模型的正确判断率是(587+221)/(665+335),也就是80.8%


缺失值插补


本文对1000个二分类变量business进行均匀随机抽样,分别抽取10%20%30%40%的数据作为缺失值,以完整的90%80%70%60%数据作为回归插补数据集,分别做单一插补;然后,对90%80%70%60%的数据集使用近似贝叶斯bootstrap法分别做插补次数M=20, 30, 40, 50, 100, 150, 200, 300, 400, 600的多重插补。根据上一步中模型的分析,在缺失数据插补中,若pi<>,则取business(i)=0。另外,由于二分类变量的取值是01,本文通过插补值和已知真值做对比,以正确判断率作为比较插补效果的依据。这样实证数据模拟可以通过SAS软件反复实施,不同模拟得到的正确判断率略有差异,这里仅给出其中的一次模拟结果,展示了在不同缺失比例下单一插补法和多重插补法的正确判断率。


可以看出:

(1)多重插补的效果比单一插补好,即在模型检验时插补的正确判断率相对高。

(2)在多重插补时,插补次数M和正确判断率之间的关系受缺失比例、插补集的样本量等因素影响。当缺失比例一定时,由于插补集的数据是随机的,每次插补值可能是不同的,因此不同的插补次数会导致正确判断率有一定程度的波动;而即使在缺失比例和M相同时,插补值也可能是不同的,不同的计算者得到的正确判断率也可能是不同的。但是随着插补次数M的不断增加,根据大数定律,正确判断率是趋于稳定的,且趋于稳定的多重插补次数是随着缺失比例的增加而增加。当缺失比例增加时,正确判断率略微减小。

(3)二分类变量数据缺失时,采用近似贝叶斯bootstrap多重插补方法的最佳插补次数M如下图:


需要特别说明的是,在缺失数据插补中,并不存在最好的插补方法。单一插补的优点是计算过程简单,便于实施;而多重插补通过模拟缺失数据的分布,能较好的保持变量之间的关系,并且考虑了缺失数据的不确定性,因此插补效果优于单一插补。当然,多重插补也有不足之处:由于插补集是随机的,不同的使用者可能得到的是不同插补值,因此,不同的插补次数M使得插补的效果有一定的波动,但是根据大数定律,随着M的增加,插补效果总是趋于稳定的。为了使插补效果达到稳定,通过使用数据模拟的方法对插补次数M进行分析可知,M随着缺失比例的增加而增加,且插补的效果随着缺失比例的增加略降低。

上一期中,我们已经通过《征信业必将大有可为?从拒绝推断说起》这篇文章,向大家介绍了拒绝样本缺失时的处理方式,所针对的是目标变量缺失的问题;本期,我们又着重提供了二分类变量数据缺失时的插补方法,在输入变量缺失时最为实用。或许这样的内容不如贴近生活的案例那样有趣,但事实上,在真实的数据挖掘项目中,用于分析的工作时间未必如大家想象得那么多,我们常常将大量精力投入到数据清洗、治理与整合方面。试想,即使你已经建立了最为完善的分析模型,却没有完备的输入数据,那么模型又该如何运行呢?数据缺失始终是困扰实际工作的难题之一,最完善的模型也需要尽量完备的输入数据的支撑,希望近期的推送可以为大家提供一些具有借鉴意义的解决之道。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
stata对包含协变量的模型进行缺失值多重插补分析
缺失值的四种处理方法
缺失值插补方法程序和数据release, 总结加注解
缺失值的处理:多重插补
临床研究中处理缺失数据的多重插补法:潜力和陷阱
缺失值的处理方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服