正文
missmap(newloandata,main="Missing Value Of Loandata")
缺失值排在前三的是CreditGrade、ProsperRating.Alpha和EmploymentStatusDuration,其中前两个是信用等级,是由于2009年7月日后prosper平台对评级名词产生了变化,第三个是受雇佣状态保持时间。这三个指标都对贷款状态有影响,所以需要对缺失值进行补全。
3.3补全缺失值
3.3.1 EmploymentStatusDuration补全数值
首先是找到缺失值的位置:
###补充EmploymentStatusDuration
####找到EmploymentStatusDuration缺失的位置
which(newloandata$EmploymentStatusDuration %in% NA)
然后查看对应的EmploymentStatus的情况:
###查看相对应的EmploymentStatus的情况
newloandata$EmploymentStatus[which(newloandata$EmploymentStatusDuration %in% NA)]
此处的EmploymentStatus不是“NA”,就是“Not available”,因此可以将缺失的EmploymentStatusDuration以“0”补全:
###EmploymentStatusDuration以“0”补全
newloandata$EmploymentStatusDuration[which(newloandata$EmploymentStatusDuration %in% NA)]
EmploymentStatusDuration缺失值已完全补充。
3.3.2 EmploymentStatus补全数值
用“Not available”补全EmploymentStatus数值:
###补充EmploymentStatus
###EmploymentStatusDuration以“Not available”补全
newloandata$EmploymentStatus[which(newloandata$EmploymentStatus %in% NA)]
EmploymentStatus缺失值已完全补充。
3.3.3 CreditScoreRangeLower/CreditScoreRangeUpper补全数值
###将CreditScoreRangeLower/CreditScoreRangeUpper取两者平均值作为一个新的变量
newloandata$CreditScore
缺失值还是存在,由于属于消费评分,因此可以考虑用中位数补充缺失值。
首先绘图查看是否可以用中位数补充数值:
###绘图看是否可用中位数补充缺失值
library(ggplot2)
library(ggthemes)
ggplot(newloandata,aes(x=CreditScore,))+
geom_density(fill="pink",alpha=0.4)+
geom_vline(aes(xintercept=median(CreditScore,na.rm = T)),colour="red",linetype="dashed",lwd=1)+
theme_few()+ggtitle("The density of CreditScore")
从图中可以看出数值大部分集中在500到750之间,因此可以用中位数补充缺失值:
###用中位数补充缺失值
newloandata$CreditScore[which(newloandata$CreditScore %in% NA)]
CreditScore缺失值已完全补充。
3.3.4 InquiriesLast6Months补全数值
绘图查看是否可以用中位数补充数值:
ggplot(newloandata,aes(x=InquiriesLast6Months,))+
geom_density(fill="skyblue",alpha=0.4)+
geom_vline(aes(xintercept=median(InquiriesLast6Months,na.rm = T)),colour="red",linetype="dashed",lwd=1)+
theme_few()+ggtitle("The density of InquiriesLast6Months")
从图中可以看出数值大部分集中在0到20之间,因此可以用中位数补充缺失值:
###用中位数补充缺失值
newloandata$InquiriesLast6Months[which(newloandata$InquiriesLast6Months %in% NA)]
InquiriesLast6Months缺失值已完全补充。
3.3.5 DelinquenciesLast7Years补全数值
绘图查看是否可以用中位数补充数值:
ggplot(newloandata,aes(x=DelinquenciesLast7Years,))+
geom_density(fill="blue",alpha=0.4)+
geom_vline(aes(xintercept=median(DelinquenciesLast7Years,na.rm = T)),colour="red",linetype="dashed",lwd=1)+
theme_few()+ggtitle("The density of DelinquenciesLast7Years")
从图中可以看出数值大部分集中在0到10之间,因此可以用中位数补充缺失值:
###用中位数补充缺失值
newloandata$DelinquenciesLast7Years[which(newloandata$DelinquenciesLast7Years %in% NA)]
DelinquenciesLast7Years缺失值已完全补充。
3.3.6 BankcardUtilization补全数值
绘图查看是否可以用中位数补充数值:
ggplot(newloandata,aes(x=BankcardUtilization,))+
geom_density(fill="grey",alpha=0.4)+
geom_vline(aes(xintercept=median(BankcardUtilization,na.rm = T)),colour="red",linetype="dashed",lwd=1)+
theme_few()+ggtitle("The density of BankcardUtilization")
用中位数填充缺失值: