r语言学习系列15-缺失值处理方法剖析

上传人:今*** 文档编号:105887484 上传时间:2019-10-13 格式:DOCX 页数:14 大小:196.69KB
返回 下载 相关 举报
r语言学习系列15-缺失值处理方法剖析_第1页
第1页 / 共14页
r语言学习系列15-缺失值处理方法剖析_第2页
第2页 / 共14页
r语言学习系列15-缺失值处理方法剖析_第3页
第3页 / 共14页
r语言学习系列15-缺失值处理方法剖析_第4页
第4页 / 共14页
r语言学习系列15-缺失值处理方法剖析_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《r语言学习系列15-缺失值处理方法剖析》由会员分享,可在线阅读,更多相关《r语言学习系列15-缺失值处理方法剖析(14页珍藏版)》请在金锄头文库上搜索。

1、15. 缺失值处理方法目录:一. 直接删除法二. 用均值/中位数/众数填补三. 探索变量的相关性插补四. 探索样本的相似性填补五. 分类树与回归树预测法插补(rpart包)六. 多重插补法(mice包)正文:一、直接删除法即直接删除含有缺失值的样本,有时最为简单有效,但前提是缺失数据的比例较少,且缺失数据是随机出现的,这样删除缺失数据后对分析结果影响不大。 1. 向量删除缺失值x-c(1,2,3,NA,5)mean(x) #默认不忽略NA值或NaN值,注意与NULL的区别1 NAmean(x,na.rm=TRUE) #忽略缺失值1 2.75x1-x!is.na(x) #去掉向量中的NA值x11

2、 1 2 3 5x2-na.omit(x) #返回去掉NA值的向量x21 1 2 3 5attr(,na.action)1 4attr(,class)1 omitna.fail(x) #若向量有NA值,则返回ErrorError in na.fail.default(x) : 对象里有遺漏值na.fail(x1) #若向量不含NA值,则返回该向量1 1 2 3 5attr(na.omit(x),na.action) #返回向量中NA值的下标1 4attr(,class)1 omitxis.na(x)-0 #将向量x中的NA值替换为0x1 1 2 3 0 52. 删除含缺失值的样本数据用DMwR

3、包实现。library(DMwR) #用自带数据集algae,18个变量,200个观测值library(VIM)sum(!complete.cases(algae) #查看含有缺失值的样本个数1 16algae1-na.omit(algae) #直接删除所有含缺失值的样本sum(!complete.cases(algae1)1 0#只删除缺失值过多的样本:缺失值个数大于列数的20%algae2-algae-manyNAs(algae,0.2), #数据框的“删除行”操作sum(!complete.cases(algae2)1 14其中,函数manyNAs(x, nORp)用来查找数据框x中缺失

4、值过多(缺失比例nORp)的行;nORp默认为0.2,即缺失值个数列数的20%注:当删除缺失数据会改变数据结构时,通过对完整数据按照不同的权重进行加权,可以降低删除缺失数据带来的偏差。3. 删除变量若数据的某变量(列)有较多的缺失值且对研究目标影响不大时,可以将整列删除,这需要在变量的重要性和观测的数量之间做权衡。4. 做统计分析时排除缺失值 例如,做线性回归时,设置na.action=na.omit即可:lm(medvptratio+rad, data=BostonHousing,na.action=na.omit)二、用均值/中位数/众数填补其优点在于不会减少样本信息,处理简单;其缺点在于

5、当缺失数据不是随机出现时会产成偏误。若某自变量对因变量的影响比较小,那么这种粗略的估计是可以接受的,且有可能会产生令人满意的结果。使用mlbench包中的BostonHousing数据集作为演示数据。由于BostonHousing数据集没有缺失值,为了演示需要,在数据集中随机插入缺失值。通过这种方法,不仅可以评估由数据缺失带来的精度损失,也可以比较不同处理方式的效果好坏。#初始化数据集library(mlbench)data(BostonHousing,package=mlbench)treated-BostonHousing #14个变量,506个观测值#填充缺失值(随机替换两个变量各40个

6、NA)set.seed(100)treatedsample(1:nrow(treated),40),rad-NAtreatedsample(1:nrow(treated),40),ptratio-NA#查看缺失状况sum(!complete.cases(treated) #查看缺失值数目1 75library(mice)md.pattern(treated) #查看缺失模式 crim zn indus chas nox rm age dis tax b lstat medv rad ptratio431 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 35 1 1 1 1 1 1

7、1 1 1 1 1 1 0 1 1 35 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 40 40 80 用均值/中位数/众数填补的代码实现:library(Hmisc)treated$ptratio=impute(treated$ptratio, mean) #插补均值treated$ptratio=impute(treated$ptratio, median) #插补中位数treated$ptratio=impute(treated$ptratio, 20.2) #

8、填充特定值treated$ptratiois.na(treated$ptratio) -mean(treated$ptratio, na.rm=T) #手动插补均值#计算均值和中位数插补的准确度library(DMwR)actuals-BostonHousing$ptratiois.na(treated$ptratio)predicteds1-rep(mean(treated$ptratio,na.rm=TRUE),length(actuals)regr.eval(actuals,predicteds1) mae mse rmse mape 1.62324034 4.19306071 2.04

9、769644 0.09545664 predicteds2-rep(median(treated$ptratio,na.rm=TRUE),length(actuals)regr.eval(actuals,predicteds2) mae mse rmse mape 1.63500000 4.78600000 2.18769285 0.09933331 注1:R语言中没有直接求众数的函数,可用sort(table(x)先求频数再排序观察到,再用特定值填充。 注2:函数regr.eval()用来返回真实值与预测值差异的若干统计量:mae为平均绝对误差;mse为均方误差;rmse为均方根误差;map

10、e为平均绝对百分误差。 另外,DMwR包中提供了函数centralImputation(),可以用数据的中心趋势值来填补缺失值:数值型变量使用中位数,名义变量使用众数。三、探索变量的相关性插补探寻变量之间的相关关系,找到相关性较高的两个变量后,再寻找他们之间的线性回归关系,最后通过线性回归关系计算缺失值进行填补。 1. 探寻变量之间的相关关系使用上一篇中的方法,或者library(DMwR)symnum(cor(algae,4:18,use=complete.obs) mP mO Cl NO NH o P Ch a1 a2 a3 a4 a5 a6 a7mxPH 1 mnO2 1 Cl 1 NO

11、3 1 NH4 , 1 oPO4 . . 1 PO4 . . * 1 Chla . 1 a1 . . . 1 a2 . . 1 a3 1 a4 . . . 1 a5 1 a6 . . . 1 a7 1 attr(,legend)1 0 0.3 . 0.6 , 0.8 + 0.9 * 0.95 B 1注:函数cor()的用来产生变量之间的相关值矩阵,设定参数use=complete.obs可以使R在计算相关值时忽略含有NA值的样本。函数symnum()是用来改善结果的输出形式的。可见变量oPO4和PO4,a1和a4可能有较强的线性相关关系。2. 先得到回归关系lm(PO4oPO4,data=al

12、gae,na.action=na.omit)Coefficients:(Intercept) oPO4 42.897 1.293 可见变量PO4与oPO4之间的线性回归关系为:PO4= 1.293*oPO4+42.8973. 利用回归关系计算缺失值进行插补#构造函数计算缺失值fillPO4-function(x)if(is.na(x) return(NA) elsereturn(1.293*x+42.897)#使用sapply函数对缺失值进行插补algaeis.na(algae$PO4),PO4-sapply(algaeis.na(algae$PO4),oPO4,fillPO4)四、探索样本的相似性填补利用多个样本(行)之间的相似性填补缺失值。度量相似性的指标有很多,常用的是欧氏距离。D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号