数据分析过程中,发现数值缺失,怎么办?
按照数据缺失机制,数据分析过程中,我们可以将其分为以下几类:
(1)完全随机缺失(MCAR):所缺失的数据发生的概率既与已观察到的数据无关,也与未观察到的数据无关。
(2)随机缺失(MAR):假设缺失数据发生的概率与所观察到的变量是有关的,而与未观察到的数据的特征是无关的。MCAR与MAR均被称为是可忽略的缺失形式。
(3)不可忽略的缺失(NIM):亦称为非随机缺失,即如果不完全变量中,数据的缺失既依赖于完全变量又依赖于不完全变量本身,这种缺失即为不可忽略的缺失。
那么,对于缺失值,我们应该如何处理呢?
对于缺失值的处理,从总体上来说分为删除存在缺失值的个案和缺失值插补。对于主观数据,人将影响数据的真实性,存在缺失值的样本的其他属性的真实值不能保证,那么依赖于这些属性值的插补也是不可靠的,所以对于主观数据一般不推荐插补的方法。插补主要是针对客观数据,它的可靠性有保证。
1)删除含有缺失值的个案
有简单删除法和权重法。简单删除法是对缺失值进行处理的最原始方法。它将存在缺失值的个案删除。如果数据缺失问题可以通过简单的删除小部分样本来达到目标,那么这个方法是最有效的。
当缺失值的类型为非完全随机缺失的时候,可以通过对完整的数据加权来减小偏差。把数据不完全的个案标记后,将完整的数据个案赋予不同的权重,个案的权重可以通过logistic或probit回归求得。
如果解释变量中存在对权重估计起决定行因素的变量,那么这种方法可以有效减小偏差。如果解释变量和权重并不相关,它并不能减小偏差。对于存在多个属性缺失的情况,就需要对不同属性的缺失组合赋不同的权重,这将大大增加计算的难度,降低预测的准确性,这时权重法并不理想。
2)可能值插补缺失值
它的思想来源是以最可能的值来插补缺失值比全部删除不完全样本所产生的信息丢失要少。在数据挖掘中,面对的通常是大型的数据库,它的属性有几十个甚至几百个,因为一个属性值的缺失而放弃大量的其他属性值,这种删除是对信息的极大浪费,所以产生了以可能值对缺失值进行插补的思想与方法。常用的有如下几种方法。
(1)均值插补。数据的属性分为定距型和非定距型。如果缺失值是定距型的,就以该属性存在值的平均值来插补缺失的值;如果缺失值是非定距型的,就根据统计学中的众数原理,用该属性的众数(即出现频率最高的值)来补齐缺失的值。
(2)利用同类均值插补。同均值插补的方法都属于单值插补,不同的是,它用层次聚类模型预测缺失变量的类型,再以该类型的均值插补。假设X=(X1,X2…Xp)为信息完全的变量,Y为存在缺失值的变量,那么首先对X或其子集行聚类,然后按缺失个案所属类来插补不同类的均值。
如果在以后统计分析中还需以引入的解释变量和Y做分析,那么这种插补方法将在模型中引入自相关,给分析造成障碍。
(3)极大似然估计(ML)。在缺失类型为随机缺失的条件下,假设模型对于完整的样本是正确的,那么通过观测数据的边际分布可以对未知参数进行极大似然估计(Little and Rubin)。
这种方法也被称为忽略缺失值的极大似然估计,对于极大似然的参数估计实际中常采用的计算方法是期望值最大化(EM)。该方法比删除个案和单值插补更有吸引力,它一个重要前提:适用于大样本。有效样本的数量足够以保证ML估计值是渐近无偏的并服从正态分布。但是这种方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂。
(4)多重插补(MI)。多值插补的思想来源于贝叶斯估计,认为待插补的值是随机的,它的值来自于已观测到的值。具体实践上通常是估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值。根据某种选择依据,选取最合适的插补值。多重插补方法分为三个步骤:
①为每个空值产生一套可能的插补值,这些值反映了无响应模型的不确定性;每个值都可以被用来插补数据集中的缺失值,产生若干个完整数据集合。
②每个插补数据集合都用针对完整数据集的统计方法进行统计分析;
③对来自各个插补数据集的结果,根据评分函数进行选择,产生最终的插补值。
假设一组数据,包括三个变量Y1,Y2,Y3,它们的联合分布为正态分布,将这组数据处理成三组,A组保持原始数据,B组仅缺失Y3,C组缺失Y1和Y2。在多值插补时,对A组将不进行任何处理,对B组产生Y3的一组估计值(作Y3关于Y1,Y2的回归),对C组作产生Y1和Y2的一组成对估计值(作Y1,Y2关于Y3的回归)。
当用多值插补时,对A组将不进行处理,对B、C组将完整的样本随机抽取形成为m组(m为可选择的m组插补值),每组个案数只要能够有效估计参数就可以了。对存在缺失值的属性的分布作出估计,然后基于这m组观测值,对于这m组样本分别产生关于参数的m组估计值,给出相应的预测即,这时采用的估计方法为极大似然法,在计算机中具体的实现算法为期望最大化法(EM)。对B组估计出一组Y3的值,对C将利用 Y1,Y2,Y3它们的联合分布为正态分布这一前提,估计出一组(Y1,Y2)。
上例中假定了Y1,Y2,Y3的联合分布为正态分布。这个假设是人为的,但是已经通过验证(Graham和Schafer于1999),非正态联合分布的变量,在这个假定下仍然可以估计到很接近真实值的结果。
多重插补和贝叶斯估计的思想是一致的,但是多重插补弥补了贝叶斯估计的几个不足。
(1)贝叶斯估计以极大似然的方法估计,极大似然的方法要求模型的形式必须准确,如果参数形式不正确,将得到错误得结论,即先验分布将影响后验分布的准确性。而多重插补所依据的是大样本渐近完整的数据的理论,在数据挖掘中的数据量都很大,先验分布将极小的影响结果,所以先验分布的对结果的影响不大。
(2)贝叶斯估计仅要求知道未知参数的先验分布,没有利用与参数的关系。而多重插补对参数的联合分布作出了估计,利用了参数间的相互关系。
以上四种插补方法,对于缺失值的类型为随机缺失的插补有很好的效果。两种均值插补方法是最容易实现的,也是以前人们经常使用的,但是它对样本存在极大的干扰,尤其是当插补后的值作为解释变量进行回归时,参数的估计值与真实值的偏差很大。
相比较而言,极大似然估计和多重插补是两种比较好的插补方法,与多重插补对比,极大似然缺少不确定成分,所以越来越多的人倾向于使用多重插补方法。
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理
数据分析过程中,发现数值缺失,怎么办?相关推荐
- 大数据分析过程中包含哪些技术
所谓大数据不仅体现在数量上的庞大,还有涉及到的方面比较广泛,以及计算过程比较的庞大而高效等,大数据分析能够从海量的数据中提取出最有效的信息,在企业的营销中发挥关键性的作用,可以说谁能够更好的利用大数据 ...
- ubuntu 系统使用过程中发现桌面突然放大,屏幕跟着鼠标走
ubuntu 系统使用过程中发现桌面突然放大,屏幕跟着鼠标走 解决方法: Alt+鼠标滑轮 可以缩放桌面,问题解决 附:dconf reset -f / 可以将桌面恢复到默认配置
- 日常使用计算机过程中发现的中断,2010年会计从业考试《初级电算化》章节习题及答案(5)...
第五章 1.当月的记账凭证必须全部记账,如有未记账的当月凭证,系统将( ) A.不能结账 B.继续结账 C.放到下月 [答案]:A 2.往来账管理的往来客户档案的设置其最主要内容是( ) A.客户编辑 ...
- 论文完成过程中发现的重要问题
尽管很清楚自身存在很多问题,可是平时并没有刻意去思考这些,更加没有有针对性地去解决这些问题.在写论文的整个过程中意识到这些问题的存在对于未来的发展影响甚大,因此,将现今发现的问题记录并加以分析, ...
- sas安装过程中发现字体安装失败解决办法
安装过程中出现了一个字体的问题:百度一大堆,没解决问题,直接跳过了,呃呃呃呃,虽然显示安装失败,硬着头皮往下装了反正. 之前的一篇文章,到后来做到gchart的图形的时候,总是显示失败,后来找到解决办 ...
- VS 2017开发ASP.NET Core Web应用过程中发现的一个重大Bug
今天试着用VS 2017去开发一个.net core项目,想着看看.net core的开发和MVC5开发有什么区别,然后从中发现了一个VS2017的Bug. 首先,我们新建项目,ASP.NET Cor ...
- 集合覆盖模型例题_在打CodeForces的过程中发现的一个小模型
不久前的Grakn Forces 2020上,我想出了这个方法,我本来以为这个模型不会很常见.然而,今天的CodeForces #679 Div2上,我第二次碰到了可以用这个模型解决的问题,气人的是, ...
- 数据分析过程中,我们常犯的错误有哪些?
1.走得太快,没空回头看路 初创公司里的人们仿佛一直在被人念着紧箍咒:"要么快要么死,要么快要么死."他们是如此着急于产品开发,以至于他们常常没有空想用户对产品的具体使用细节,产品 ...
- [CC2642r1] 问题笔记 记录使用过程中发现的问题
CC2642r1--问题笔记 发现的问题 一.使用官方例程进行配对,时间长达1分钟 二.低版本协议栈打开高版本协议栈(4.40.4 open 5.24.0) 三.提示:Bond save failed ...
最新文章
- LeetCode简单题之分割平衡字符串
- 在Leangoo里怎么修改昵称,简称,头像?
- anaconda 命令
- Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you
- 消息长度_【消息】听说咱安阳的第一条封闭外环即将全线通车了?是的,长度相当于北京五环...
- Google的自动驾驶汽车无事故成功完成30万英里的驾驶路程
- IE低版本(6-9)CSS hack
- 【软考】《希赛教育·软件设计师考前冲刺与考点分析》计算机硬件基础知识——学习笔记
- mysql 抛出Lock wait timeout exceeded; try restarting transaction异常
- iPad怎么截屏?iPad快速截图的7种方式
- 《深入浅出统计学》读书笔记
- 使用阿里云接口进行银行卡四要素实名认证
- mysql脏页处理方法_mysql刷脏页的一次总结
- android+怎么分享图片大小,Android微信分享图片大于32k进行压缩
- Google推出移动搜索 80亿网页、8亿图片尽在掌中
- python画车辆轨迹图_如何利用 Python 绘制酷炫的 车辆轨迹 — 速度时空图?三维数据用二维图像呈现...
- 心脏滴血漏洞利用(CVE-2014-0160)
- 开源推荐 | 基于 Laravel 的博客 CMS 系统
- BPM是什么意思?BPM的优势及好处有哪些?
- Structured Streaming 编程模型
热门文章
- Maximize The Beautiful Value (前缀和贪心)
- User must be authenticated with Spring Security before authorization can be completed.解决方法
- chrome:initiator为other
- 干支纪年法简便算法_不用万年历快速推算日柱干支法
- Excel文件解析和结果回写
- Linux入侵之隐藏你的踪迹
- MySQL删除数据后,释放磁盘空间
- 一次ffmpeg -c copy 在avformat_write_header函数处报错:Could not find tag for codec rawvideo in stream #0的原因分析
- 数字图像处理_Matlab——车牌识别分析
- 【水题】hzy 和zsl 的生存挑战