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

读取数据。

library(foreign) #加载程序包

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

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

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个缺失值。

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)

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

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

summary(lm)

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

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语言缺失值的处理——回归预测法相关推荐

  1. graphpad7.04多组比较p值_R语言缺失值处理(MICE/Amelia/missForest/Hmisc/mi)

    这是一篇对R语言中处理缺失值的整理,主要思路搬运自Medium上面一篇Harshitha Mekala写的文章Dealing with Missing Data using R,是我目前搜到的最全的关 ...

  2. r语言datarame删除行_R语言缺失值的处理:线性回归模型插补

    原文链接: 拓端数据科技 / Welcome to tecdat​tecdat.cn 在当我们缺少值时,系统会告诉我用-1代替,然后添加一个指示符,该变量等于-1.这样就可以不删除变量或观测值. 视频 ...

  3. 多元有序logistic回归_R语言多元Logistic逻辑回归 应用案例

    原文链接: http://tecdat.cn/?p=2640 ​tecdat.cn 可以使用逐步过程确定多元逻辑回归.此函数选择模型以最小化AIC. 如何进行多元逻辑回归 可以使用阶梯函数通过逐步过程 ...

  4. r语言查找是否存在空值_R语言-缺失值判断以及处理

    #####缺失值判断以及处理##### #举例1:向量类型判断缺失值is.na和缺失值的填补which (x is.na(x)  #返回一个逻辑向量,TRUE为缺失值,FALSE为非缺失值 table ...

  5. r 函数返回多个值_R语言:广义估计方程(GEE)

    01 解决何种问题 在临床研究中,经常会比较两种治疗方式对患者结局的影响,并且多次测量结局.例如为了研究两种降血糖药对血糖的控制结果是否存在差异,研究者会在两组人群服药后不同的时间点记录血糖值,然后评 ...

  6. r 多元有序logistic回归_R语言多元Logistic逻辑回归 应用案例

    可以使用阶梯函数通过逐步过程确定多重逻辑回归.此函数选择模型以最小化AIC. 如何进行多重逻辑回归 可以使用阶梯函数通过逐步过程确定多重逻辑回归.此函数选择模型以最小化AIC. 通常建议不要盲目地遵循 ...

  7. r语言boxcox异方差_R语言讲义(包括各种回归).pptx

    R 语言讲义;免费(没有权力和铜臭)资源公开, 可改变代码(不是黑盒子,也不是吝啬鬼, 透明是防止"腐败"的最好方式) 容易学习.可编程以实行复杂的课题可扩展: 通过数千个网上提供 ...

  8. r语言中将茎叶图旋转90度_R语言讲义(包括种回归).ppt

    R 语言讲义 吴喜之 免费(没有权力和铜臭) 资源公开, 可改变代码(不是黑盒子,也不是吝啬鬼, 透明是防止"腐败"的最好方式) 容易学习.可编程以实行复杂的课题 可扩展: 通过数 ...

  9. R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值

    R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值 目录 R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值

最新文章

  1. va_list和va_start和((A*)0)-a
  2. 基于纯 CSS3 技术实现美观的标签云效果
  3. ASP.NET 2.0 – 如何巢状化GridView控件
  4. BIND_MISMATCH导致过多VERSION COUNT的问题
  5. [BZOJ2725/Violet 6]故乡的梦
  6. python Django基本介绍
  7. linux-pcap 抓包程序框架
  8. linux telnet.class,Linux telnet简单实用方法
  9. 北方民族大学计算机全国排名,校友会:全国15所民族类大学排名,这三所大学进入十强...
  10. org.mariadb.jdbc.internal.com.send.authentication.SendGssApiAuthPacket could not be instantiated
  11. 《网络对抗》 逆向及Bof基础实践
  12. 【IDEA/SVN】IDEA 从SVN导入项目到本地
  13. XMPP中文 XEP-0045: 多用户聊天(一)
  14. 执行fadein追加css,基于CSS3完成淡入(fadeIn)淡出(fadeOut)结果
  15. 群赛14----2017.9.24
  16. 网宿科技边缘计算之直播应用
  17. YOLOV5在deepstream6.1.1上应用
  18. 企业落地级jmeter性能测试,结果分析以及报告(4-3)
  19. java 多线程 并发 面试题_最常见的15个Java多线程,并发面试问题
  20. vm安装中标麒麟v7.0

热门文章

  1. 怎么查看docker是否启动_怎么查看自己的手机是否支持北斗导航系统
  2. LeetCode题组:第836题-矩形叠加
  3. Part1_3 python字符串,列表,元组,字典
  4. 【Cocosd2d实例教程六】Cocos2d实现屏幕背景的自动滚动
  5. elasticsearch的join查询
  6. 爬虫提取非结构化数据
  7. WebSocket 实战--转
  8. 深入了解ibatis源码----简单ibatis示例代码
  9. 机器学习算法加强——贝叶斯网络
  10. 【统计学习】参数估计