R语言中缺失值处理
前言
在处理数据的过程中,样本往往会包含缺失值。我们有必要对缺失值进行处理,这样不但可以降低预测分析的数据偏差,而且还可以构建有效的模型。本文将简要介绍几种常见的数据缺失值处理方法。
目录
1. 数据准备和模式设定
2. 删除记录
3. 删除变量
4. 用均值/中位数/众数进行插补
5. 预测法
1. 数据准备和模式设定
本文所涉及到的几种数据缺失值处理方法都是使用mlbench包中的BostonHousing数据集作为演示数据。由于BostonHousing数据集没有缺失值,为了演示需要,在数据集中随机插入缺失值。通过这种方法,我们不仅可以评估由数据缺失带来的精度损失,也可以比较不同处理方式的效果好坏。
# 初始化数据
# install.packages('mlbench')
library(mlbench)
data ("BostonHousing", package="mlbench")
original <- BostonHousing
# 填充缺失值
set.seed(100)
BostonHousing[sample(1:nrow(BostonHousing), 40), "rad"] <- NA
BostonHousing[sample(1:nrow(BostonHousing), 40), "ptratio"] <- NA
在插入缺失值之后,我们可以使用mice包中md.pattern函数查看缺失值的“数据模式”
# 缺失值的模式
library(mice)
md.pattern(BostonHousing)
crim zn indus chas nox rm age dis tax ptratio b lstat medv rad
466 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
40 1 1 1 1 1 1 1 1 1 1 1 1 1