R语言学习系列-缺失值处理方法.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
R语言学习系列-缺失值处理方法.docx

15. 缺失值处理方?法目录:一. 直接删除法二. 用均值/中位数/众数填补三. 探索变量的相?关性插补四. 探索样本的相?似性填补五. 分类树与回归?树预测法插补?(rpart包?)六. 多重插补法(mice包)正文:一、直接删除法即直接删除含?有缺失值的样?本,有时最为简单?有效,但前提是缺失?数据的比例较?少,且缺失数据是?随机出现的,这样删除缺失?数据后对分析?结果影响不大?。 1. 向量删除缺失?值x-c(1,2,3,NA,5)mean(x) #默认不忽略N?A值或NaN?值,注意与NUL?L的区别[1] NAmean(x,na.rm=TRUE) #忽略缺失值[1] 2.75x1-x[!is.na(x)] #去掉向量中的?NA值x1[1] 1 2 3 5x2-na.omit(x) #返回去掉NA?值的向量x2[1] 1 2 3 5attr(,na.action?)[1] 4attr(,class)[1] omitna.fail(x) #若向量有NA?值,则返回Err?orError in na.fail.defaul?t(x) : 对象里有遺漏?值na.fail(x1) #若向量不含N?A值,则返回该向量?[1] 1 2 3 5attr(na.omit(x),na.action?) #返回向量中N?A值的下标[1] 4attr(,class)[1] omitx[is.na(x)]-0 #将向量x中的?NA值替换为?0x[1] 1 2 3 0 52. 删除含缺失值?的样本数据用DMwR包?实现。librar?y(DMwR) #用自带数据集?algae,18个变量,200个观测?值librar?y(VIM)sum(!comple?te.cases(algae)) #查看含有缺失?值的样本个数?[1] 16algae1?-na.omit(algae) #直接删除所有?含缺失值的样?本sum(!comple?te.cases(algae1?))[1] 0#只删除缺失值?过多的样本:缺失值个数大?于列数的20?%algae2?-algae[-manyNA?s(algae,0.2),] #数据框的“删除行”操作sum(!comple?te.cases(algae2?))[1] 14其中,函数many?NAs(x, nORp)用来查找数据?框x中缺失值?过多(≥缺失比例nO?Rp)的行;nORp默认?为0.2,即缺失值个数?≥列数的20%注:当删除缺失数?据会改变数据?结构时,通过对完整数?据按照不同的?权重进行加权?,可以降低删除?缺失数据带来?的偏差。3. 删除变量若数据的某变?量(列)有较多的缺失?值且对研究目?标影响不大时?,可以将整列删?除,这需要在变量?的重要性和观?测的数量之间?做权衡。4. 做统计分析时?排除缺失值 例如,做线性回归时?,设置na.action?=na.omit即可?:lm(medv~ptrati?o+rad, data=Boston?Housin?g,na.action?=na.omit)二、用均值/中位数/众数填补其优点在于不?会减少样本信?息,处理简单;其缺点在于当?缺失数据不是?随机出现时会?产成偏误。若某自变量对?因变量的影响?比较小,那么这种粗略?的估计是可以?接受的,且有可能会产?生令人满意的?结果。使用mlbe?nch包中的?Boston?Housin?g数据集作为?演示数据。由于Bost?onHous?ing数据集?没有缺失值,为了演示需要?,在数据集中随?机插入缺失值?。通过这种方法?,不仅可以评估?由数据缺失带?来的精度损失?,也可以比较不?同处理方式的?效果好坏。#初始化数据集?librar?y(mlbenc?h)data(Boston?Housin?g,packag?e=mlbenc?h)treate?d-Boston?Housin?g #14个变量,506个观测?值#填充缺失值(随机替换两个?变量各40个?NA)set.seed(100)treate?d[sample?(1:nrow(treate?d),40),rad]-NAtreate?d[sample?(1:nrow(treate?d),40),ptrati?o]-NA#查看缺失状况?sum(!comple?te.cases(treate?d)) #查看缺失值数?目[1] 75librar?y(mice)md.patter?n(treate?d) #查看缺失模式? crim zn indus chas nox rm age dis tax b lstat medv rad ptrati?o4311 1 1 1 1 1 1 1 1 1 1 1 1 1 0 351

文档评论(0)

zhangningclb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档