14. 缺失值及缺失模式
目录:
一. 什么是缺失值? 二. 识别缺失值
三. 缺失模式及处理办法 四.判断缺失模式
正文:
一、什么是缺失值?
1. 缺失值 缺失值是任何数据集中经常出现的问题,无回答、录入错误等
调查中常会出现的现象都会导致缺失数据。 缺失值通常会用一些特殊 符号进行标记, 比如 9999、1990年 1月 1日,或者是“ * ”、“?” “#”、“ $”等符号。
还有一种数值缺失情况,是统计的时间窗口并非对所有数据都 适合。例如,需要“客户近 6 个月的最大存款余额”,对于那些建立 账户尚不满 6 个月的客户来说,统计出来的数值与想要得到的就可能 存在差距。
缺失数据会影响分析工作的进行和统计工作的效率,还会导致 分析的偏差。数据使用者、分析者往往缺乏缺失值处理方面的知识, 仅仅对数据进行简
单删除或插补会影响数据规模和数据结构, 进而影 响分析结果。
一般来说,对缺失值的填充方法,最好是先判断其缺失模式, 再建立一些
适当模型,根据数据的分布来填充一个更恰当的数值。
R 语言中,缺失值用 NA 表示。
2. 缺失值的产生原因 (1) 有些信息暂时无法获取 (2) 有些信息是被遗漏的
(3) 有些对象的某个或某些属性是不可用的 (4) 有些信息(被认为)是不重要的 (5) 获取这些信息的代价太大 (6) 系统实时性能要求较高
3. NA 与 NULL 区别:
NA 表示数据集中的该数据遗失、不存在。在针对具有函数操作的时候,该 NA 不会被直接剔除。如
x<-c(1,2,3,NA,4) 则 mean(x) 为 NA
如果想去除NA的影响,需要显式告知 mean方法,如
的数据集进行
NA
mean(x,n a.rm=T)
另外,NA会“追随”其他数据的类型。
NULL表示未知的状态。它不会在计算之中,如
x<-c(1,2,3,NULL,4)
贝卩 mean(x)为 2.5
NULL 是不算数的,length(c(NULL)) 为 0,而 length(c(NA)) 为 1。
可见NA “占着”位置,它存在着,而 NULL没有“占着”位置,或 者说,“不知道”有没有真正的数据
注:NaN表示“非数,不可能的值”,其识别函数为 is.NaN()
Inf和-Inf分别表示正无穷和负无穷,其识别函数为 is. infinite()
4. 处理缺失值的基本步骤 (1) 识别缺失值
(2) 判断缺失模式(完全随机缺失、随机缺失、完全非随机缺失) (3) 处理缺失值(删除、用合适的方法插补) 5. 处理缺失值的方法及包