欢迎来到天天文库
浏览记录
ID:36774114
大小:273.71 KB
页数:8页
时间:2019-05-15
《R语言缺失值处理cloudtj》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、R语言-缺失值处理5-cloudtj-博客园R语言:缺失值处理前言刚接触缺失数据研究的读者可能会被各式各样的方法和言论弄得眼花缭乱。该领域经典的读本是Little和Rubin的StatisticalAnalysiswithMissingData,SecondEdition(2002)一书。其他比较优秀的专著还有Allison的MissingData(2001)、Schafer和Graham的"MissingData:OurViewoftheStateoftheArt"(2002),以及Schlomer、Bauman和Card的"BestPracticesforMissingDataM
2、anagementinCounselingPsychology"(2010)。一个完整的处理方法通常包含以下几个步骤:(1)识别缺失数据;(2)检查导致数据缺失的原因;(3)删除包含缺失值的实例或用合理的数值代替(插补)缺失值。但遗憾的是,仅有识别缺失数据是最清晰明确的步骤。知道数据为何缺失依赖于你对数据生成过程的理解,而决定如何处理缺失值则需要判断哪种方法的结果最为可靠和精确。统计学家通常将缺失数据分为三类。它们都用概率术语进行描述,但思想都非常直观。我们将用sleep研究中对做梦时长的测量(有12个动物有缺失值)来依次阐述三种类型。(1)完全随机缺失若某变量的缺失数据与其他任何观
3、测或未观测变量都不相关,则数据为完全随机缺失(MCAR)。若12个动物的做梦时长值缺失不是由于系统原因,那么可认为数据是MCAR。注意,如果每个有缺失值的变量都是MCAR,那么可以将数据完整的实例看做是对更大数据集的一个简单随机抽样。(2)随机缺失若某变量上的缺失数据与其他观测变量相关,与它自己的未观测值不相关,则数据为随机缺失(MAR)。例如,体重较小的动物更可能有做梦时长的缺失值(可能因为较小的动物较难观察),“缺失”与动物的做梦时长无关,那么该数据就可以认为是MAR。此时,一旦你控制了体重变量,做梦时长数据的缺失与出现将是随机的。(3)非随机缺失若缺失数据不属于MCAR或MAR
4、,则数据为非随机缺失(NMAR)。例如,做梦时长越短的动物也更可能有做梦数据的缺失(可能由于难以测量时长较短的事件),那么数据可认为是NMAR。大部分处理缺失数据的方法都假定数据是MCAR或MAR。此时,你可以忽略缺失数据的生成机制,并且(在替换或删除缺失数据后)可以直接对感兴趣的关系进行建模。当数据是NMAR时,想对它进行恰当地分析比较困难,你既要对感兴趣的关系进行建模,还要对缺失值的生成机制进行建模。处理缺失数据的方法有很多,但不能保证都生成一样的结果。下图列出了一系列可用来处理不完整数据的方法,以及相应的R包。目录1.识别缺失数据2.探索缺失值模式3.理解缺失值数据的来由和影响
5、4.处理缺失值完整实例分析5.处理缺失值的其他方法主要程序包install.packages(c("VIM","mice"))library(VIM)library(mice)1.识别缺失数据首先,我们回顾一下前节的内容并地一步拓展。R使用NA(不可得)代表缺失值,NaN(不是一个数)代表不可能的值。另外,符号Inf和-Inf分别代表正无穷和负无穷。函数is.na()、is.nan()和is.infinite()可分别用来识别缺失值、不可能值和无穷值。每个返回结果都是TRUE或FALSE。表15-1给出了一些示例。这些函数返回的对象与其自身参数的个数相同。若每个元素的类型检验通过,则
6、由TRUE替换,否则用FALSE替换。例如,令y<-c(1,2,3,NA),则is.na(y)返回向量c(FALSE,FALSE,FALSE,TRUE)。函数complete.cases()可用来识别矩阵或数据框中没有缺失值的行。若每行都包含完整的实例,则返回TRUE的逻辑向量;若每行有一个或多个缺失值,则返回FALSE。对于识别缺失值,有两点需要牢记。第一点,complete.cases()函数仅将NA和NaN识别为缺失值,无穷值(Inf和-Inf)被当做有效值。第二点,必须使用与本章中类似的缺失值函数来识别R数据对象中的缺失值。像myvar==NA这样的逻辑比较无法实现。NA:代
7、表缺失值;NaN:代表不可能的值;Inf:代表正无穷;-Inf:代表负无穷。is.na():识别缺失值;is.nan():识别不可能值;is.infinite():无穷值。is.na()、is.nan()和is.infinte()函数的返回值示例2.探索缺失值模式在决定如何处理缺失数据前,了解哪些变量有缺失值、数目有多少、是什么组合形式等信息非常有用。本节中,我们将介绍探索缺失值模式的图表及相关方法。最后,如果知道了数据为何缺失,这将为后续深入研究提供许多
此文档下载收益归作者所有