ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:113.54KB ,
资源ID:3729879      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3729879.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(R语言学习系列14缺失值及缺失模式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

R语言学习系列14缺失值及缺失模式.docx

1、R语言学习系列14缺失值及缺失模式14. 缺失值及缺失模式 目录:一. 什么是缺失值?二. 识别缺失值三. 缺失模式及处理办法四判断缺失模式正文:一、什么是缺失值?1. 缺失值缺失值是任何数据集中经常出现的问题,无回答、录入错误等调查中常会出现的现象都会导致缺失数据。缺失值通常会用一些特殊符号进行标记,比如9999、1990年1月1日,或者是“*”、“?”、“#”、“$”等符号。还有一种数值缺失情况,是统计的时间窗口并非对所有数据都适合。例如,需要“客户近6个月内的最大存款余额”,对于那些建立账户尚不满6个月的客户来说,统计出来的数值与想要得到的就可能存在差距。缺失数据会影响分析工作的进行和统

2、计工作的效率,还会导致分析的偏差。数据使用者、分析者往往缺乏缺失值处理方面的知识,仅仅对数据进行简单删除或插补会影响数据规模和数据结构,进而影响分析结果。一般来说,对缺失值的填充方法,最好是先判断其缺失模式,再建立一些适当模型,根据数据的分布来填充一个更恰当的数值。R语言中,缺失值用NA表示。2. 缺失值的产生原因(1) 有些信息暂时无法获取(2) 有些信息是被遗漏的(3) 有些对象的某个或某些属性是不可用的(4) 有些信息(被认为)是不重要的(5) 获取这些信息的代价太大(6) 系统实时性能要求较高3. NA与NULL区别:NA表示数据集中的该数据遗失、不存在。在针对具有NA的数据集进行函数

3、操作的时候,该NA不会被直接剔除。如x-c(1,2,3,NA,4) 则mean(x)为NA如果想去除NA的影响,需要显式告知mean方法,如mean(x,na.rm=T)另外,NA会“追随”其他数据的类型。NULL表示未知的状态。它不会在计算之中,如x-c(1,2,3,NULL,4) 则mean(x)为2.5NULL是不算数的,length(c(NULL)为0,而length(c(NA)为1。可见NA“占着”位置,它存在着,而NULL没有“占着”位置,或者说,“不知道”有没有真正的数据注:NaN表示“非数,不可能的值”,其识别函数为is.NaN()Inf和-Inf分别表示正无穷和负无穷,其识别

4、函数为is. infinite() 4. 处理缺失值的基本步骤(1) 识别缺失值(2) 判断缺失模式(完全随机缺失、随机缺失、完全非随机缺失)(3) 处理缺失值(删除、用合适的方法插补) 5. 处理缺失值的方法及包二、识别缺失值在数据预处理中,首先要做的通常是判断是否存在缺失值。判断是否为缺失值的函数是is.na(),可以应用于向量、数据框等多种对象,返回逻辑值。另一个常用函数是VIM包中的complete.cases(),判断每个观测样本是否完整,TRUR表示完整。library(mice) #数据集nhanes2为mice包自带数据集,25个观测值,4个变量is.na(nhanes2) #

5、判断每个值是否为缺失值,只粘贴部分运行结果 age bmi hyp chl1 FALSE TRUE TRUE TRUE2 FALSE FALSE FALSE FALSEsum(is.na(nhanes2) #共有几个缺失值1 27#计算每列的缺失百分比Rate - function(x)sum(is.na(x)/length(x)*100apply(nhanes2,2,Rate)age bmi hyp chl 0 36 32 40complete.cases(nhanes2) #判断每个样本是否完整 1 FALSE TRUE FALSE FALSE TRUE FALSE TRUE 8 TRUE

6、 TRUE FALSE FALSE FALSE TRUE TRUE15 FALSE FALSE TRUE TRUE TRUE FALSE FALSE22 TRUE TRUE FALSE TRUEsum(!complete.cases(nhanes2) #不完整样本的个数1 12三、缺失模式及处理办法1. 缺失模式缺失模式是描述缺失值与观测变量间可能的关系。从缺失的分布来讲,缺失值可以分为:完全随机缺失(MCAR):某变量缺失值发生的可能性与其他变量无关也与该变量自身无关。换句话说,某变量缺失值的出现完全是个随机事件。可以将存在MCAR变量的数据看作是假定完整数据的一个随机样本(Rubin 19

7、76);注:MCAR数据缺失的理想状态,但是可靠的缺失最大阈值是数据集总数的5% 随机缺失(MAR):某变量出现缺失值的可能性与模型中某些观测变量有关而与该变量自身无关,例如,在一次测试中,如果IQ达不到最低要求的100分,那么将不能参加随后的人格测验。在人格测验上因为IQ低于100分而产生的缺失值;非随机缺失(MNAR)某变量出现缺失值的可能性只与自身相关,例如,公司新录用了20名员工,由于6名员工表现较差在试用期内辞退,试用期结束后的表现评定中,辞退的6名员工的表现分。 2. 识别缺失数据的数目、分布和模式的目的(1)分析生成缺失数据的潜在机制;(2)评价缺失数据对回答实质性问题的影响:

8、缺失数据的比例有多大? 缺失数据是否集中在少数几个变量上,抑或广泛存在? 缺失是随机产生的吗? 缺失数据间的相关性或与可观测数据间的相关性,是否可以表明产生缺失值的机制呢?3. 处理办法若缺失数据集中在几个相对不太重要的变量上,则可以删除这些变量,然后再进行正常的数据分析;若有一小部分数据随机分布在整个数据集中(MCAR),则可以分析数据完整的实例,这样仍可得到可靠有效的结果;若以假定数据是MCAR或MAR,则可以应用多重插补法来获得有效的结论。若数据是MNAR,则是一个比较严重的问题。在这种情况下,你可能需要去检查数据的收集过程并且试着理解数据为什么会丢失。例如,调查问卷中大多数人不回答某个

9、问题,原因何在? 四、判断缺失模式1. 列表形式展示缺失数据mice包中的md.pattern()函数可以生成一个以矩阵或数据框形式展示缺失值模式。library(mice)md.pattern(nhanes2) #25个观测值,4个变量 age hyp bmi chl 13 1 1 1 1 0 1 1 1 0 1 1 3 1 1 1 0 1 1 1 0 0 1 2 7 1 0 0 0 3 0 8 9 10 27说明:1表示不缺失,0表示缺失;第1列为该行模式的数目;最后一行/列为该行/列缺失总数;结果第一行表明4个变量都不缺失的样本共13个,第二行表明只变量bmi缺失的样本共1个,最后一行表

10、明变量hyp、bmi、chl同时缺失的样本共7个。2. 图形探索缺失数据VIM包提供了大量能可视化数据集中缺失值模式的函数:(1) 函数aggr()可绘制每个变量的缺失值数,以及每个变量组合的缺失值数。其基本格式为:aggr(x, col=c(.,.), prop=TURE, numbers=TRUE)其中,x为数据集;col可选择部分变量;默认prop=TURE显示缺失比例,若取FALSE则显示缺失数目;numbers=TRUE设定显示组合缺失的信息。library(mice)library(VIM) #用VIM自带数据集sleep,62个观测值,10个变量aggr(sleep,prop=F

11、ALSE,numbers=TRUE) #第1个图,显示数目aggr(sleep,prop=TRUE,numbers=TRUE) #第2个图,显示比例 说明:变量NonD缺失的样本有14个,变量NonD、Dream同时缺失的样本有9个,没有缺失值的样本共42个。说明:同上,只是从“缺失数目”变成了“缺失比例”。 (2) 函数matrixplot()可生成展示每个样本数据的图形,数值型数据被重新转换到0,1区间,并用灰度来表示大小:浅色表示值小,深色表示值大。默认缺失值为红色。基本格式为:matrixplot(x, sortby=.)其中,x为数值矩阵或数据框,sortby指定排序变量,来观察该变

12、量值的大小是否影响各缺失值。matrixplot(sleep,sortby=BodyWgt) 说明:缺失值较多地集中在变量NonD、Dream,该图已按变量BodyWgt(体重)排序,可以看出无缺失值的睡眠变量NonD、Dream、Sleep对应着较小的体重。 (3) 函数marginplot()可生成两个变量数据的边缘散点图,不同于一般散点图,它会在图形边缘展示两个变量的缺失值或填补值的信息。基本格式为:marginplot(x, pch=c(1,16), col=c(skyblue,red,.),.)其中,x为两个变量的数据矩阵或数据框;pch设置散点符号;col设置散点图颜色。 marg

13、inplot(sleepc(Gest,Dream) 说明:针对变量Gest(妊娠期)、Dream(做梦时长)绘制边缘散点图;左边边缘的红色箱线图是不包含Gest值的变量Dream的分布,蓝色箱线图是包含Gest值的变量Dream的分布;四个红色的点代表着缺失了Gest值的样本的Dream值;底部边缘是两个变量反过来的信息。可以看到,妊娠期和做梦时长呈负相关,缺失妊娠期数据的动物的做梦时长一般更长。注:两个变量均有缺失值的样本个数在左下角输出。3. 用相关性探索缺失数据 用指示变量代替数据集中的数据(1表示缺失,0表示不缺失),这样生成的矩阵称为影子矩阵。求这些指示变量间和它们与初始(可观测)变

14、量间的相关性,有助于观察哪些变量常一起缺失,以及分析变量“缺失”与其他变量间的关系。x-as.data.frame(abs(is.na(sleep)head(sleep,n=5) BodyWgt BrainWgt NonD Dream Sleep Span Gest Pred Exp Danger1 6654.000 5712.0 NA NA 3.3 38.6 645 3 5 32 1.000 6.6 6.3 2.0 8.3 4.5 42 3 1 33 3.385 44.5 NA NA 12.5 14.0 60 1 1 14 0.920 5.7 NA NA 16.5 NA 25 5 2 35

15、2547.000 4603.0 2.1 1.8 3.9 69.0 624 3 5 4head(x,n=5) BodyWgt BrainWgt NonD Dream Sleep Span Gest Pred Exp Danger1 0 0 1 1 0 0 0 0 0 02 0 0 0 0 0 0 0 0 0 03 0 0 1 1 0 0 0 0 0 04 0 0 1 1 0 1 0 0 0 05 0 0 0 0 0 0 0 0 0 0library(stats) #使用函数sd()y0) cor(y) NonD Dream Sleep Span GestNonD 1.00000000 0.907

16、11474 0.48626454 0.01519577 -0.14182716Dream 0.90711474 1.00000000 0.20370138 0.03752394 -0.12865350Sleep 0.48626454 0.20370138 1.00000000 -0.06896552 -0.06896552Span 0.01519577 0.03752394 -0.06896552 1.00000000 0.19827586Gest -0.14182716 -0.12865350 -0.06896552 0.19827586 1.00000000cor(sleep,y,use=

17、plete.obs) NonD Dream Sleep Span GestBodyWgt 0.22682614 0.22259108 0.001684992 -0.05831706 -0.05396818BrainWgt 0.17945923 0.16321105 0.007859438 -0.07921370 -0.07332961NonD NA NA NA -0.04314514 -0.04553485Dream -0.18895206 NA -0.188952059 0.11699247 0.22774685Sleep -0.08023157 -0.08023157 NA 0.09638

18、044 0.03976464Span 0.08336361 0.05981377 0.005238852 NA -0.06527277Gest 0.20239201 0.05140232 0.159701523 -0.17495305 NAPred 0.04758438 -0.06834378 0.202462711 0.02313860 -0.20101655Exp 0.24546836 0.12740768 0.260772984 -0.19291879 -0.19291879Danger 0.06528387 -0.06724755 0.208883617 -0.06666498 -0.20443928Warning message:In cor(sleep, y, use = plete.obs) : 标准差为零主要参考文献:1R语言:缺失值处理,银河统计学,csdn博客:2缺失值的处理,铁汉1990的博客,新浪博客:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1