R总结-处理缺失值的方法

浏览: 1900

 

处理步骤:

  1. 识别缺失数据
  2. 检查导致数据缺失的原因(分类:mcar(完全随机缺失),随机缺失(mar),非随机缺失(nmar),后边最常见)
  3. 删除包含缺失值的实例或用合理的数值代替缺失值

 

识别缺失值

 Clipboard Image.png


 


NA:代表缺失值

NAN:代表不可能值

函数is.na() is.nan()和is.infinite()可用来识别缺失值不可能值 和无穷值,返回逻辑值

Clipboard Image.png

complete.cases()可以用来识别矩阵或数据框中没有缺失值的行,如包含,返回true(注意和前边正好相反)

 


代码:

 Clipboard Image.png

Clipboard Image.png

Clipboard Image.png


探索缺失值模式(发现缺失值模式)

 

1:列表显示缺失值

存在原因:对于数据集的增大,之上方法丧失吸引力

包:mice包  md.pattern()函数可生成一个以矩阵或数据框形式展示缺失值模式的表格

Clipboard Image.png

2:图形探究缺失数据

包:aggr() matrixplot() 和scattmiss()

图形如下

Clipboard Image.png

解读:1图表示每个变量的缺失值数,比如nond缺失值为14,位最大

          2图表是表每个观测值的缺失值个数,红色为缺失值

另外一个matrixplot()函数可生成展示每个实例数据的图形

Clipboard Image.png

 


3用相关性探索缺失值

Is.na的返回值是1或者0,用指示变量代替原数据集,也叫影子矩阵,对影子矩阵就是对原数据集操作

 Clipboard Image.png

代码:

 Clipboard Image.png

Clipboard Image.png


识别缺失值数据的来由和影响

目的:1)分析生成缺失数据的潜在机制

2)评价缺失数据对回答实质性问题的影响

  •  3种方法:恢复数据的推理方法,涉及删除缺失值的传统方法和涉及模拟的现代方法
  • 目标:在没有完整信息的情况下,尽可能精确的回答收集数据所要解决的实质性问题

 

理性处理不完整数据

推理方法:根据变量间的数学或者逻辑关系来填补或恢复缺失值

完整实列分析(行删除)

complete.cases()

na.omit()   

以上是存储没有缺失值的数据框或者矩阵形式的实例(行)

 Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

 

总:行删除法假定数据是MCAR(完整数据的观察只是全数据集的一个随机子样本),由于删除了所有含缺失值的观测,减少了可用的样本,这也导致统计效力的降低

 


多重插补法(MI)

确实数据用蒙特卡洛方法来填补

重点:mice包

以下图形可以加强理解

Clipboard Image.png 

 Clipboard Image.png

Clipboard Image.png

Clipboard Image.png


注意:以上3是创建的5个中的第3个

其它方法

Clipboard Image.png

还有2个过时的方法,分别是:

成对删除或者简单插补

ps:把精力放在实际能利用的地方,对于不能用的可以了解了解下就行

Clipboard Image.png

 

 

推荐 2
本文由 求知不才 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册