本文结构:前言——数据介绍——检查缺失值分布——缺失值插补(4种方法)——总结
前言:
现实生活中的数据是纷繁杂乱的,收集来的数据有缺失和录入错误司空见惯,所以学习如果处理这些常见问题是每一个数据人必须掌握的技能,俗话说巧妇难为无米之炊,不能很好的处理原始数据会给后来的建模带来麻烦,甚至引入不必要的偏差和错误,数据科学家都熟悉“垃圾进垃圾出”的说法。本文介绍的是数据预处理中非常重要的一步——缺失值处理。
数据介绍:
本文数据来自西南财经大学统计学院李可老师提供的信贷数据。其数据是完好的,共有2万多条记录。本文随机挑选1000条数据,并对其中的贷款额(loan_amnt)和信用等级(grade)随机选取20个数据点设置为缺失值(NA)。
# 设置工作路径
setwd('D:\\缺失值处理常见办法')
# 加载数据集
loandata <- read.csv('loanData.csv', header = TRUE)
# 随机选取1000条记录,并将其中部分数据设置为缺失值
set.seed(1)
ind <- sample(nrow(loandata), 1000)
data.sample <- na.omit(loandata)[ind,] # 确保样本数据是无缺失的
data.copy <- data.sample # 复制数据,为后来的结果做对比操作
data.copy$loan_amnt[sample(nrow(data.copy), 20)] <- NA #设置缺失值
data.copy$grade[sample