第15章 处理缺失数据的高级方法
本章内容
识别缺失数据
缺失数据模式的可视化
完整案例分析
缺失数据的多重插补法
在之前的章节中,我们处理的基本都是完整的数据集(即没有缺失值)。虽然这样有助于简化对统计和绘图方法的描述,但在真实世界中,缺失数据的现象是极其普遍的。
大部分人都想在一定程度上避免缺失数据造成的影响。统计教科书可能不会提及这个问题,或者仅用很少的篇幅介绍,而统计软件提供的自动处理缺失值的方法也可能不是最优的。虽然多数数据分析(至少在社会科学中)会牵涉到缺失数据,但在期刊文章的方法和结果章节却极少讨论这个问题。虽然他们会指出缺失值常常出现,并且可能导致研究结果在一定程度上无效,但公正地讲,这个问题除了在一些专业化的书籍和课程中出现,它的受重视程度还远远不够。
数据缺失有多种原因。可能是由于调查对象忘记回答一个或多个问题,或者拒绝回答敏感问题,或者感觉疲劳而没有完成一份很长的问卷,也可能是调查对象错过了约定或者过早从研究中退出,还可能是记录设备出现问题、网络连接失效、数据误记等。有时缺失数据可能是有意为之的,比如为提高调查效率或降低成本,你可能不会对所有的调查对象进行数据采集。有时数据丢失可能是由于一些未知因素。
遗憾的是,大部分统计方法都假定处理的是完整矩阵、向量和数据框。大部分情况下,在处理收集了真实数据的问题之前,你不得不消除缺失数据:(1)删除含有缺失数据的实例1;(2)用合理的替代值替换缺失值。不管是哪种方法,最后的结果都是没有缺失值的数据集。
1 实例是观测的另外一种叫法,本章中都将观测称作实例。——译者注
本章中,我们将学习处理缺失数据的传统方法和现代方法,主要使用VIM
和mice
包。命令install.packages(c("VIM","mice"))
可下载并安装这两个软件包。
为了让讨论更有意思,我们将使用VIM
包提供的哺乳动物睡眠数据(sleep
,注意不要将其与基础安装中描述药效的sleep
数据集混淆)。数据来源于Allison和Chichetti(1976)的研究,他们研究了62种哺乳动物的睡眠、生态学变量和体质变量间的关系。他们对为什么动物的睡眠需求会随着物种变化很感兴趣。睡眠数据是因变量,生态学变量和体质变量是自变量或预测变量。
睡眠变量包含睡眠中做梦时长(Dream
)、不做梦的时长(NonD
)以及它们的和(Sleep
)。体质变量包含体重(BodyWgt
,单位为千克)、脑重(BrainWgt
,单位为克)、寿命(Span
,单位为年)和妊娠期(Gest
,单位为天)。生态学变量包含物种被捕食的程度(Pred
)、睡眠时暴露的程度(Exp
)和面临的总危险度(Danger
)。生态学变量以从1(低)到5(高)的5分制进行测量。
Allison和Chichetti的原作仅研究完整的数据,为了深入探究变量间的关系,我们将使用多重插补法对所有62个物种进行分析。