python均值插补法填补缺失值_R数据分析:资料缺失值的常见处理方法

在数据预处理时,一个常见的问题就是缺失值的处理,今天再写一次缺失值处理。

在R中缺失值会被表现为NA(not available),我们可以使用is.na()函数来查看我们的资料中是否有缺失值:

tmp 
[1] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE

还可以计算缺失的个数:

sum(is.na(tmp))2

在处理缺失值的过程中很多人会选择“直接删除缺失值”或者“使用平均值插补缺失”,这两个方法都是有一定问题的,前者会让资料减少,后者也不会增加新的信息相当于没有处理。

比较推崇的处理缺失值的方法一个是用「k-Nearest Neighbours」,另外就是用「mice」进行多重插补。这两个方法其实都不难,我们看看具体怎么做:


require(missForest)#在iris中随机产生0.1的缺失值data 
python均值插补法填补缺失值_R数据分析:资料缺失值的常见处理方法_第1张图片

直接删除缺失值

# 使用如下函数,没有缺失就会返回T,有的话返回Fcomplete.cases(data)
91489ba564f7e4ae66ea0164c32123fe.png
#直接删除所有的缺失值rm.data 

用均数插补

# 用均数插补mean.data 

用K-Nearest Neighbours插补

先简单介绍一下KNN原理:

比如我们现在有一个班的学生的成绩,包括语文、数学、英语,然后小明同学的英语成绩有缺失,我们用knn的思想就是:我们看小明的语文、数学成绩,看他这两门成绩和哪些同学的成绩比较接近,然后我们再用这接近的(K位)同学的英语成绩取平均作为小明的英语成绩。

一句话概括:就是给缺失的单位找K个最相近的邻居,然后用这些个邻居的值代替缺失的值

require(DMwR)#要用这个包imputeData 
python均值插补法填补缺失值_R数据分析:资料缺失值的常见处理方法_第2张图片

用mice填补缺失值

很多时候我们还能利用数据集的现有信息对缺失数据进行预测,这样一种方法就最大化利用了数据集的现有信息。

比如:我们有V1,V2,V3……Vn这些个变量,每一个变量都有缺失值,当我们想要插补V1的缺失值时,我们就用V2,V3……Vn作为自变量,V1作为应变量进行建模预测V1的缺失。

同理,针对V2的缺失,就用V1,V3……Vn建模。

require(mice)mice.data 

总结

感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python和R的,加油。

(站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)

往期内容:

python数据分析:缺失值处理

python数据分析:缺失值插补实例操练

python数据分析:数据缺失机制及利用missingno库对缺失可视化

python数据分析:缺失数据的处理

python数据分析:离群值的检测和处理

R数据分析:自我报告的身高数据的离群值探索

你可能感兴趣的:(R,多变量数据预处理,st-link,v2使用方法)