R语言缺失值的处理——回归预测法

Posted 数据分析艺术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言缺失值的处理——回归预测法相关的知识,希望对你有一定的参考价值。









R语言缺失值的处理——回归预测法
R语言缺失值的处理——回归预测法
 在进行数据分析的过程中,有时候拿到的数据并不完整,有很多确实数据。这就需要我们对这些缺失值进行处理。一般的处理办法包括删除缺失值较多的样本和变量、使用其他样本均值替代缺失值等方法。而利用回归模型进行缺失值插补的方法也是十分普遍的,本文将利用一个例子进行介绍。   

读取数据。

library(foreign) #加载程序包

stu_data_na=read.spss(file="stu_data_na.sav",to.data.frame=TRUE) 

head(stu_data_na) #查看数据前几行

R语言缺失值的处理——回归预测法

2  查看数据集缺失情况。

dim(stu_data_na) #查看数据维度

sum(complete.cases(stu_data_na)) #查看完整数据条数

library(mice) #加载mice包

md.pattern(stu_data_na) #利用函数md.pattern查看数据缺失情况

结果中的1表示无缺失,0表示有缺失。可以看到stu_data_na数据集共有26条完整数据,x1、x2两个变量中,x1是无缺失数据的,x2有8个缺失值。

R语言缺失值的处理——回归预测法R语言缺失值的处理——回归预测法

3  下面利用回归预测方法插补变量x2的缺失值。首先,将x2完整和有缺失的数据分开。

stu_1=which(is.na(stu_data_na[,4])==TRUE) #返回stu_data_na中第4列为缺失的行,也就是x2为空的行

stu_data_com1=stu_data_na[-stu_1,] #选取x2不为空的行

head(stu_data_com1)

stu_data_fill1=stu_data_na[stu_1,]  #选取x2为空的行

head(stu_data_fill1)

R语言缺失值的处理——回归预测法

4  建立x2、x1的回归模型。

lm=lm(x2~x1,data=stu_data_com1) #其中x1为自变量,x2为因变量

summary(lm)

从结果中可以看出,回归模型是显著的。x1和x2具有一定的线性关系。因此利用回归模型来填补缺失值是可行的。

R语言缺失值的处理——回归预测法

5  stu_data_fill1[,4]=round(predict(lm,stu_data_fill1))  #将x2的缺失值用非缺失值的回归模型预测结果来替代

stu_data_fill1 #查看已经补全的数据

6  stu_data_new=rbind(stu_data_com1,stu_data_fill1)#将填补了缺失值的数据与完整数据合并得到最终的数据集。

head(stu_data_new) #查看新的数据集

dim(stu_data_new )

缺失值插补完成。



以上是关于R语言缺失值的处理——回归预测法的主要内容,如果未能解决你的问题,请参考以下文章

ML之R:通过数据预处理(缺失值/异常值/特殊值的处理/长尾转正态分布/目标log变换/柱形图-箱形图-小提琴图可视化/构造特征/特征筛选)利用算法实现二手汽车产品交易价格回归预测之详细攻略

拓端tecdat|R语言编程指导用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值

机器学习数据预处理之缺失值:预测填充(回归模型填充分类模型填充)

集成学习模型(xgboostlightgbmcatboost)进行回归预测构建实战:异常数据处理缺失值处理数据重采样resample独热编码预测特征检查特征可视化预测结构可视化模型

如何在R里面实现偏最小二乘回归法partial least squares 回归

R语言使用lm函数拟合多元线性回归模型假定预测变量之间有交互作用R语言使用effects包的effect函数查看交互作用对于回归模型预测响应变量的影响