啊啊啊啊啊吖

2018-10-18   阅读量: 686

数据分析师 R语言 KS曲线

怎么用R实现KS曲线

扫码加入数据分析学习群

将代码封装在函数PlotKS_N里,Pred_Var是预测结果,可以是评分或概率形式;labels_Var是好坏标签,取值为1或0,1代表坏客户,0代表好客户;descending用于控制数据按违约概率降序排列,如果Pred_Var是评分,则descending=0,如果Pred_Var是概率形式,则descending=1;N表示在将数据按风险降序排列后,等分N份后计算KS值。

PlotKS_N函数返回的结果为一列表,列表中的元素依次为KS最大值、KS取最大值的人数百分位置、KS曲线对象、KS数据框。

PlotKS_N<-function(Pred_Var, labels_Var, descending, N){

# Pred_Var is prop: descending=1

# Pred_Var is score: descending=0

library(dplyr)

df<- data.frame(Pred=Pred_Var, labels=labels_Var)



if (descending==1){

df1<-arrange(df, desc(Pred), labels)

}else if (descending==0){

df1<-arrange(df, Pred, labels)

}

df1$good1<-ifelse(df1$labels==0,1,0)

df1$bad1<-ifelse(df1$labels==1,1,0)

df1$cum_good1<-cumsum(df1$good1)

df1$cum_bad1<-cumsum(df1$bad1)

df1$rate_good1<-df1$cum_good1/sum(df1$good1)

df1$rate_bad1<-df1$cum_bad1/sum(df1$bad1)



if (descending==1){

df2<-arrange(df, desc(Pred), desc(labels))

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 1 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子