对缺失数据进行探索

一、 对缺失数据进行探索


处理不完整数据的方法及R包

主要使用VIM和mice包。命令
install.packages(c("VIM","mice"))可下载并安装这两个软件包。
并使用VIM包提供的哺乳动物睡眠数据sleep。


睡眠变量包含睡眠中做梦时长( Dream)、不做梦时长( NonD)以及它们的和( Sleep)。
体质变量包含体重( BodyWgt,单位为千克)、脑重( BrainWgt,单位为克)、寿命( Span,单位为年)和妊娠期( Gest,单位为天)。
生态学变量包含物种被捕食的程度( Pred)、睡眠时的暴露程度( Exp)和面临的总危险度( Danger)。

1. 探索缺失数据的样式

2. 用图探索缺失值的特点(基于VIM包)

library(VIM)
aggr(sleep,numbers = TRUE, prop= FALSE)
library(VIM)
dev.new()#我的R一定要使用这个函数才能让图形进行交互,不明白。
matrixplot(sleep)
dev.off()

Matrix plot sorted by variable 'NonD'

数值型数据被重新转换到[0, 1]区间,并用灰度来表示大小:浅色表示值小,深 色表示值大。默认缺失值为红色。

dev.new()
marginplot(sleep[c("Gest","Dream")], pch=c(20),
+            col=c("green", "red", "blue"))
dev.off()

可以看到,妊娠期和做梦时长呈负相关,缺失妊娠期数据时动物的做梦时长一般更长。

两个变量均有缺失值的观测个数在两边界交叉处用蓝色输出(左下角的0)

dev.new()
marginmatrix(sleep)
dev.off()
dev.new()
scattmatrixMiss(sleep)
dev.off()
  • 红色代表在其他变量中含有缺失值的值
  • 蓝色代表在其他变量中不含缺失值的值


3. 用相关性探索缺失数据

你可用指示变量替代数据集中的数据(1表示缺失,0表示存在),
这样生成的矩阵有时被称作影子矩阵。求这些指示变量之间和它们与初始(可观测)变量之间的相关性,
有助于观察哪些变量常一起缺失,以及分析变量“缺失”与其他变量间的关系。
x <- as.data.frame(abs(is.na(sleep)))

影子矩阵

y <- x[which(apply(x,2,sum)>0)]#提取含(但不全部是)缺失值的变量
round(cor(y),3)#列出这些指示变量间的相关系数,并限定3位小数点
- 你可以看到含缺失值变量与其他可观测变量间的关系,仅限数值型变量
cor(sleep, y, use="pairwise.complete.obs")

从相关系数矩阵的第一列可以看到,体重越大( r=0.227)、妊娠期越长( r=0.202)、睡眠暴露度越大( r=0.245)的动物无梦睡眠的评分更可能缺失。其他列的信息也可以按类似方式得出。
注意,表中的相关系数并不特别大,表明数据是MCAR的可能性比较小,更可能为MAR。


你可能感兴趣的:(对缺失数据进行探索)