得到一份数据文件时,常常会发现文件中存在一些缺失的数据,而缺失数据会对分析任务产生阻碍,造成结果的偏移和统计工作的低效率。处理缺失数据的流程大致是:确认数据缺失机制——选择缺失数据的处理方法。

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.com.cn/s/blog_7fb03f7d01012j6p.html

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

em模型补缺失值_缺失值填补方法相关推荐

  1. em模型补缺失值_如何填补缺失值?看SPSS提供的简单方法

    数据有缺失是常见的问题,如果是大数据集,在缺失比例较小(如10%以下)的情况下,可以考虑直接剔除,但如果本身是个小数据集,就不能轻易地做删除处理. 建议采用缺失值填补技术来解决. 在SPSS中,有两个 ...

  2. em模型补缺失值_基于EM算法数据单变量缺失处理方法研究

    龙源期刊网 http://www.qikan.com.cn 基于 EM 算法数据单变量缺失处理方法研究 作者:黄铉 来源:<科技传播> 2015 年第 20 期 摘 要 数据分析方法大都针 ...

  3. em模型补缺失值_模型对缺失值的处理

    模型对缺失值的处理 首先从两个角度解释你的困惑: 工具包自动处理数据缺失不代表具体的算法可以处理缺失项 对于有缺失的数据:以决策树为原型的模型优于依赖距离度量的模型 回答中也会介绍树模型,如随机森林 ...

  4. em模型补缺失值_ML4fun系列(六):EM算法

    EM算法 最早接触EM算法的地方想必就是在对高斯混合模型进行求解的时候.那就从高斯混合模型开始了解EM算法的工作机理. 高斯混合模型(GMM) 高斯混合模型是一种无监督学习方法.他是用多个高斯分布函数 ...

  5. em模型补缺失值_GitHub - iiphenoix/PPCA-EM-BPCA-Mean: 均值-EM-BPCA-PPCA算法的缺失值(4种)插补...

    1.实验(first模块) ①删除特殊字符:代码在first包里的Prepare.py. ②EM算法插值:代码操作如first包里的em.py所示,并且调用了toencoding.py代码 ③多重插值 ...

  6. pandas用众数填充缺失值_缺而不失——pandas中常见缺失值处理方法

    缺失值的处理是一件艺术活,最高的境界应该是缺而不失.pandas中提供了非常丰富的工具来对缺失值进行处理.这里主要是对常用方法的简要介绍. 注:不同地区和软件对缺失值的表示方法不同,在用pandas读 ...

  7. python 线性回归回归 缺失值 忽略_机器学习 第3篇:数据预处理(使用插补法处理缺失值)...

    插补法可以在一定程度上减少偏差,常用的插补法是热卡插补.拟合插补和多重插补.拟合插补,要求变量间存在强的相关性:多重插补(MCMC法),是在高缺失率下的首选插补方法,优点是考虑了缺失值的不确定性. 一 ...

  8. python预处理缺失值_数据预处理 第3篇:数据预处理(使用插补法处理缺失值)...

    插补法可以在一定程度上减少偏差,常用的插补法是热卡插补.拟合插补和多重插补.拟合插补,要求变量间存在强的相关性:多重插补(MCMC法),是在高缺失率下的首选插补方法,优点是考虑了缺失值的不确定性. 一 ...

  9. 机器学习中处理缺失值的7种方法

    机器学习中处理缺失值的7种方法 转载 |  https://cloud.tencent.com/developer/article/1680427 作者 | Satyam Kumar 编译 | VK ...

  10. 数据清洗:缺失值识别和处理方法

    缺失值识别 数据缺失分为两种:一是行记录的缺失:二是列值的缺失. 不同的数据存储和环境中对于缺失值的表示不同,例如数据库中是Null.Python返回对象是None.Pandas或Numpy中是NaN ...

最新文章

  1. libusb中的热插拔使用举例
  2. 云计算为企业实现业务成果开辟了新的机遇
  3. MVC4 WebAPI(一)
  4. 企业的任何方法均可融入敏捷技术
  5. python renamer模块_【免费工具集】4种免费Maya Python脚本集合:重命名、检查UV、分配重叠模型、选边,尽在EL Tool Pack...
  6. Y/C分离/2/3D滤波器
  7. BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
  8. 隐藏Windows Live Messenger到系统图标栏
  9. 菜鸟驿站是什么快递_菜鸟驿站支持哪些快递(菜鸟驿站默认发什么快递)
  10. php二级栏目出不来,dedecms判断二级栏目为空不显示的方法
  11. Mac PhotoShop CS6破解
  12. linux命名空间(namespace)学习(一)
  13. Intellij IDEA 2019 英文界面乱码问题解决
  14. 单月涨粉超600w,直播销售额破5亿,2月的黑马都是谁?
  15. iterm2连不上阿里云服务器
  16. Macbook Air安装Win7与苹果双系统实操
  17. 计算机图形学(一) 视频显示设备_7_光栅扫描系统
  18. 故事-湘西:老大与老二分家
  19. 预习计算机组成原理之计算机的运算方法——笔记4
  20. java编写某计算器控制台程序_计算器 - 进阶的憨狗 - 博客园

热门文章

  1. Python基础语法1 —— 变量、数据类型
  2. 解决谷歌浏览器自带的谷歌翻译无法翻译问题
  3. Neo4j CQL语法
  4. 计算机图形学(第2版 于万波 于硕 编著)第45页的Bresenham算法有错误
  5. 请问蓝牙设备如何测试?
  6. JavaScript工具函数
  7. 程序员租房福利! 最新 2018年上海公积金提取 租房提取
  8. python实现雪花飘落效果_python实现雪花飘落效果实例讲解
  9. Gos —— shell程序
  10. 华三交换机配置ntp server