R语言学习系列14缺失值及缺失模式.docx
- 文档编号:10677001
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:14
- 大小:19.86KB
R语言学习系列14缺失值及缺失模式.docx
《R语言学习系列14缺失值及缺失模式.docx》由会员分享,可在线阅读,更多相关《R语言学习系列14缺失值及缺失模式.docx(14页珍藏版)》请在冰豆网上搜索。
R语言学习系列14缺失值及缺失模式
14.缺失值及缺失模式
目录:
一.什么是缺失值
二.辨别缺失值
三.缺失模式及办理方法
四.判断缺失模式
正文:
一、什么是缺失值
1.缺失值
缺失值是任何数据集中常常出现的问题,无回答、录入错误等检查中常会出现的现象都会致使缺失数据。
缺失值往常会用一些特别符号进行标志,比方9999、1990年1月1日,或许是“*”、“”、“#”、“$”等符号。
还有一种数值缺失状况,是统计的时间窗口并不是对全部数据都适合。
比如,需要“客户近6个月内的最大存款余额”,关于那些成立账户尚不满6个月的客户来说,统计出来的数值与想要获取的便可能存在差距。
缺失数据会影响剖析工作的进行和统计工作的效率,还会致使剖析的误差。
数据使用者、剖析者常常缺少缺失值办理方面的知识,不过对数据进行简单删除或插补会影响数据规模和数据构造,从而影响剖析结果。
一般来说,对缺失值的填补方法,最好是先判断其缺失模式,再成立一些适合模型,依据数据的散布来填补一个更适合的数值。
R语言中,缺失值用NA表示。
2.缺失值的产生原由
(1)有些信息临时没法获取
(2)有些信息是被遗漏的
(3)有些对象的某个或某些属性是不行用的
(4)有些信息(被以为)是不重要的
(5)获取这些信息的代价太大
(6)系统及时性能要求较高
3.NA与NULL差别:
NA表示数据集中的该数据丢失、不存在。
在针对拥有NA的数据集
进行函数操作的时候,该NA不会被直接剔除。
如
x<-c(1,2,3,NA,4)则mean(x)为NA
假如想去除NA的影响,需要显式见告mean方法,如
mean(x,=T)
此外,NA会“追随”其余数据的种类。
NULL表示未知的状态。
它不会在计算之中,如
x<-c(1,2,3,NULL,4)则mean(x)为
NULL是不算数的,length(c(NULL))为0,而length(c(NA))为1。
可见NA“占
着”地点,它存在着,而NULL没有“占着”地点,或许说,“不知
道”有没有真实的数据
注:
NaN表示“非数,不行能的值”,其辨别函数为()
Inf和-Inf分别表示正无量和负无量,其辨别函数为is.infinite()
4.办理缺失值的基本步骤
(1)辨别缺失值
(2)判断缺失模式(完好随机缺失、随机缺失、完好非随机缺失)
(3)办理缺失值(删除、用适合的方法插补)
5.办理缺失值的方法及包
二、辨别缺失值
在数据预办理中,第一要做的往常是判断能否存在缺失值。
判断能否为缺失值的函数是(),能够应用于向量、数据框等多种对象,
返回逻辑值。
另一个常用函数是VIM包中的(),判断每个观察样本能否完好,TRUR
表示完好。
library(mice)
#数据集nhanes2为mice包自带数据集,25个观察值,4个变量
(nhanes2)#判断每个值能否为缺失值,只粘贴部分运转结果
agebmihypchl
1FALSETRUETRUETRUE
2FALSEFALSEFALSEFALSEsum(nhanes2))#共有几个缺失值[1]27
#计算每列的缺失百分比
Rate<-function(x){sum(x))/length(x)*100}
apply(nhanes2,2,Rate)
agebmihypchl
0363240
(nhanes2)#判断每个样本能否完好
[1]FALSETRUEFALSEFALSETRUEFALSETRUE
[8]TRUETRUEFALSEFALSEFALSETRUETRUE
[15]FALSEFALSETRUETRUETRUEFALSEFALSE
[22]TRUETRUEFALSETRUEsum(!
(nhanes2))#不完好样本的个数
[1]12
三、缺失模式及办理方法
1.缺失模式
缺失模式是描绘缺失值与观察变量间可能的关系。
从缺失的散布来讲,缺失值能够分为:
完好随机缺失(MCAR):
某变量缺失值发生的可能性与其余变量没关也与该变量自己没关。
换句话说,某变量缺失值的出现完好部是个随机事件。
能够将存在MCAR
变量的数据看作是假设完好数据的一个随机样本(Rubin1976);注:
MCAR数据缺失的理想状态,可是靠谱的缺失最大阈值是数据集总数的5%
随机缺失(MAR):
某变量出现缺失值的可能性与模型中某些观察变量有关而与该变量
自己没关,比如,在一次测试中,假如IQ达不到最低要求的100分,那么将不可以参加随后的人品测试。
在人品测试上因为IQ低于100分而产生的缺失值;
非随机缺失(MNAR)
某变量出现缺失值的可能性只与自己有关,比如,企业新录取了20名职工,因为6名职工表现较差在试用期内解雇,试用期结束后的表现评定中,解雇的6名职工的表现分。
2.辨别缺失数据的数量、散布和模式的目的
(1)剖析生成缺失数据的潜伏体制;
(2)评论缺失数据对回答实质性问题的影响:
①缺失数据的比率有多大
②缺失数据能否集中在少量几个变量上,抑或宽泛存在
③缺失是随机产生的吗
④缺失数据间的有关性或与可观察数据间的有关性,能否能够表示产生缺失值的体制呢
3.办理方法
若缺失数据集中在几个相对不太重要的变量上,则能够删除这些变量,而后再进行正常的数据剖析;
如有一小部分数据随机散布在整个数据集中(MCAR),则能够剖析数据完好的实例,这样仍可获取靠谱有效的结果;
若以假设数据是MCAR或MAR,则能够应用多重插补法来获取有效的结论。
若数据是MNAR,则是一个比较严重的问题。
在这类状况下,你可能需要去检查数据的采集过程而且试着理解数据为何会丢掉。
比如,检盘问卷中大部分人不回答某个问题,原由安在
四、判断缺失模式
1.列表形式展现缺失数据
mice包中的()函数能够生成一个以矩阵或数据框形式展现缺失值模
式。
library(mice)
(nhanes2)#25个观察值,4个变量
agehypbmichl
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
1027
说明:
1表示不缺失,0表示缺失;第1列为该行模式的数量;最后一行/列为该行/列缺失总数;结果第一行表示4个变量都不缺失的样本共13个,第二行表示只变量bmi缺失的样本共1个,最后一行表示变量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=FALSE,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指定排序变量,来察看该变量
值的大小能否影响各缺失值。
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
设置散点图颜色。
marginplot(sleep[c("Gest","Dream")])
说明:
针对变量Gest(妊娠期)、Dream(做梦时长)绘制边沿散点图;左侧边沿的红色箱线图是不包括Gest值的变量Dream的散布,蓝色箱线图是包括Gest值的变量Dream的散布;四个红色的点代表着缺失了Gest值的样本的Dream值;底部边沿是两个变量反过来的信息。
能够看到,妊娠期和做梦时长呈负有关,缺失妊娠期数据的动物的做梦时长一般更长。
注:
两个变量均出缺失值的样本个数在左下角输出。
3.用有关性探究缺失数据
用指示变量取代数据集中的数据(1表示缺失,0表示不缺失),这样生成的矩阵称为影子矩阵。
求这些指示变量间和它们与初始(可观察)变量间的有关性,有
助于察看哪些变量常一同缺失,以及剖析变量“缺失”与其余变量间
的关系。
x<
BodyWgtBrainWgtNonDDreamSleepSpanGestPredExpDanger
1
NA
NA
645
3
5
3
2
42
3
1
3
3
NA
NA
60
11
1
4
NA
NA
NA
25
5
2
3
5
624
3
5
4
head(x,n=5)
BodyWgtBrainWgtNonDDreamSleepSpanGestPredExpDanger
1
0
0
1
1
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
3
0
0
1
1
0
0
0
0
0
0
4
0
0
1
1
0
1
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
library(stats)#使用函数sd()
y<-x[which(apply(x,MARGIN=2,sd)>0)]
cor(y)
NonD
Dream
Sleep
Span
Gest
NonD
0.
0.
-0.
Dream
0.
0.
-0.
Sleep
0.0.
Span
0.
Gest
-0.-0.
0.
cor(sleep,y,use="")
NonD
Dream
Sleep
Span
Gest
BodyWgt
0.
0.
BrainWgt
0.
0.
NonD
NA
NA
NA
Dream
-0.
NA
0.0.
Sleep
NA
Span
NA
Gest
0.
-0.
NA
Pred
-0.
Exp
0.
0.-0.-0.
Danger
-0.
Warningmessage:
Incor(sleep,y,use=""):
标准差为零
主要参照文件:
《R语言:
缺失值办理》,银河统计学,csdn博客:
《缺失值的办理》,铁汉1990的博客,新浪博客:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学习 系列 14 缺失 模式
![提示](https://static.bdocx.com/images/bang_tan.gif)