新浪博客

缺失值填补方法

2017-09-19 09:33阅读:
得到一份数据文件时,常常会发现文件中存在一些缺失的数据,而缺失数据会对分析任务产生阻碍,造成结果的偏移和统计工作的低效率。处理缺失数据的流程大致是:确认数据缺失机制——选择缺失数据的处理方法。 1.确认数据缺失机制
处理缺失数据前,首先应该了解数据缺失的机制。缺失值的机制并非造成缺失值的原因,而是描述缺失值与观测变量间可能的关系。确定数据缺失机制有利于选择合适的处理方法对数据进行处理。一般情况下,缺失机制可以分为以下三种类型: ①完全随机缺失,假设缺失的概率对于各变量的取值是等概率的,即缺失是完全随机的,那么删除缺失数据后的结果将是无偏的。缺失概率与其他变量无关,也与该变量自身无关。
——检验方法:T检验,按照缺失指示变量将各计量变量分为两组,用T检验比较两组均值有误差别。【看到有文章说其他类型缺失机制可能也出现这样情形,但是我个人认为如果是将其他所有测量变量都比较应该就只有完全随机缺失满足。故,认为t检验可行】
②随机缺失,指缺失的概率只与模型中某些观测变量有关,而与该变量自身无关。例如,在一次测试中,如果IQ达不到最低要求的100分,那么将不能参加随后的人格测试。在人格测试上因为IQ低于100分而产生的缺失值为随机缺失。通常情况下,完全随机缺失的假设很难被满足,而随机缺失则是一个相对宽松的假设。
③非随机缺失,当某变量出现缺失值的可能性只与自身相关时称作非随机缺失。例如,公司新录用了20名员工,由于6名员工表现较差,在试用期内辞退,试用期结束后的表现评定中,辞退的6名员工的表现分即为非随机缺失。
各缺失机制的具体判断方法见链接:http://www.doc88.com/p-1304509340887.html
2.缺失数据的处理方法
2.1删除法
删除部分数据,使之成为完整数据进行分析。根据分析的角度不同,删除数据的方法可以分为四种类型:
①观测样本删除。将存在缺失值的样本直接删除,这是最直接的删除数据的方法。该方法适用于样本量较大,但缺少比例很小(比如5%),而且不涉及到时间序列等前后单元格关联较强的情形。
②变
量删除。当某个变量的缺失率较大时,比如某变量有一般的调查者无回答,可能的原因是问卷设置的问题,可将该变量删除。
③完全变量分析,在实验研究中,有时候研究的某一个问题可能只涉及到某几个变量,而这几个变量的原始数据是完整的,那就可以只分析这几个完整的原始数据,而无需使用缺失的不相关数据。
④无回答权重。当缺失值类型为非完全随机缺失的时候,可以通过对完整的数据加权来减小偏差。把数据不完全的个案标记后,将完整的数据个案赋予不同的权重,个案的权重可以通过logistics回归求得。【待确认】
2.2填补法
在实验研究中,删除数据可能被认为是信息量与研究花费的巨大浪费,为避免这种情况,更好地方法是对缺失值进行填补,用填补值尽可能接近真实值来还原数据。该方法的基本思想是利用辅助信息,为每个缺失值寻找替代值。根据所构造的填补值个数,可以分为单一填补和多重填补。
(1)单一填补的方法部分列举如下:
均值/中位数/众数填补
一般来说,如果是数值型变量,若存在的变量值是正态分布则选择均值填充,若是偏态分布,则选择中位数填充;如果不是数值型变量,则选择众数填充。
根据缺失值的属性相关系数最大的那个属性(即变量间相关性最大的那个变量)将数据分成几个组,然后分别计算每个组的均值,把这些均值放入到缺失的数值里面就可以了。
——缺点:用单一数值填充时,如果是均值填充,会大大降低数据的方差,即随机性,损失大量的数据信息。
(2)多重填补的方法部分列举如下:
①热卡填补法
对于一个包含缺失值的变量,热卡填充法的做法是:在数据库中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。不同的问题可能会选用不同的标准来对相似进行判定。最常见的是使用相关系数矩阵来确定哪个变量(如变量Y)与缺失值所在变量(如变量X)最相关。然后把所有变量按Y的取值大小进行排序。那么变量X的缺失值就可以用排在缺失值前的那个个案的数据来代替了。
——缺点:太麻烦。与均值替换法相比,利用热卡填充法插补数据后,其变量的标准差与插补前比较接近。但在回归方程中,使用热卡填充法容易使得回归方程的误差增大,参数估计变得不稳定,而且这种方法使用不便,比较耗时。
②最近距离决定填补法
假设现在为时间y,前一段时间为时间x,然后根据x的值去把y的值填补好。
——缺点:一般就是在时间因素决定不显著的时候,比如一天的气温,一般不会突然降到很低,然后第二天就升的很高。但是对时间影响比较大的,可能就不可以了。
——适用于短时间不会变化的变量
③回归填补法
假设我y属性缺失,然后我知道x属性,然后我用回归方法对没有确实的数据进行训练模型,再把这个值得x属性带进去,对这个y属性进行预测,然后填补到缺失处。
——缺点:由于是根据x属性预测y属性,这样会让属性之间的相关性变大。这可能会影响最终模型的训练。
④多重填补方法(M-试探法)
它是基于贝叶斯理论的基础上,然后用EM算法来实现对缺失值进行处理的算法。对每一个缺失值都给M个缺失值,这样数据集就会变成M个,然后用相同的方法对这M个样本集进行处理,得到M个处理结果,总和这M个结果,最终得到对目标变量的估计。其实这个方法很简单,就是我尽量多做模型,然后找出最好的,我就叫它M-试探法吧。
⑤基于贝叶斯方法
基于贝叶斯的方法就是分别将缺失的属性作为预测项,然后根据最简单的贝叶斯方法,对这个预测项进行预测。但是这个方法有一个缺点,就是说不能把之前的预测出来的数据加入到样本集,会丢失一些数据,会影响到预测。所以现在就是对属性值进行重要性排序,然后把重要的先预测出来,在加入新的数据集,再用新的数据集预测第二个重要的属性,这样一直处理到最后为止。
参考文章:
1.浅谈数据挖掘中的数据处理(缺失值处理以及异常值检测) - 小花花108 - 博客园 http://www.cnblogs.com/xiaohuahua108/p/6237906.html
2.缺失值的机制和传统处理方法_Mpluscollege_新浪博客 http://blog.sina.cn/dpool/blog/s/blog_7fb03f7d01012j6p.html?vt=4
3.基于R语言的缺失值填补方法 http://xueshu.baidu.com/s?wd=paperuri:(d8959def6e7df04eb059cecd035e7989)&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http://www.doc88.com/p-2079500265484.html&ie=utf-8&sc_us=16560328053298594980

我的更多文章

下载客户端阅读体验更佳

APP专享