將**封裝在函式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資料框。
**如下:
1 #################### plotks_n ################################
2 plotks_n
3 # pred_var is prop: descending=1
4 # pred_var is score: descending=0
5 library(dplyr)
7 df
9 if (descending==1)else if (descending==0)
15 df1$good1
16 df1$bad1
17 df1$cum_good1
18 df1$cum_bad1
19 df1$rate_good1
20 df1$rate_bad1
22 if (descending==1)else if (descending==0)
28 df2$good2
29 df2$bad2
30 df2$cum_good2
31 df2$cum_bad2
32 df2$rate_good2
33 df2$rate_bad2
35 rate_good
36 rate_bad
37 df_ks
39 df_ks$ks
41 l
42 if (n>l) n
43 df_ks$tile
44 qus
45 qus
46 df_ks
47 df_ks$tile
48 df_0
49 df_ks
51 m_ks
52 pop
53 m_good
54 m_bad
56 library(ggplot2)
57 plotks
58 geom_line(aes(tile,rate_bad),colour="red2",size=1.2)+
59 geom_line(aes(tile,rate_good),colour="blue3",size=1.2)+
60 geom_line(aes(tile,ks),colour="forestgreen",size=1.2)+
62 geom_vline(xintercept=pop,linetype=2,colour="gray",size=0.6)+
63 geom_hline(yintercept=m_ks,linetype=2,colour="forestgreen",size=0.6)+
64 geom_hline(yintercept=m_good,linetype=2,colour="blue3",size=0.6)+
65 geom_hline(yintercept=m_bad,linetype=2,colour="red2",size=0.6)+
67 annotate("text", x = 0.5, y = 1.05, label=paste("ks=", round(m_ks, 4), "at pop=", round(pop, 4)), size=4, alpha=0.8)+
69 scale_x_continuous(breaks=seq(0,1,.2))+
70 scale_y_continuous(breaks=seq(0,1,.2))+
72 xlab("of total population")+
73 ylab("of total bad/good")+
75 ggtitle(label="ks - chart")+
77 theme_bw()+
79 theme(
80 plot.title=element_text(colour="gray24",size=12,face="bold"),
81 plot.background = element_rect(fill = "gray90"),
82 axis.title=element_text(size=10),
83 axis.text=element_text(colour="gray35")
84 )
86 result
87 return(result)
88 }
作圖如下:
ks 曲線 R語言實現KS曲線
將 封裝在函式plotks n裡,pred var是 結果,可以是評分或概率形式 labels var是好壞標籤,取值為1或0,1代表壞客戶,0代表好客戶 descending用於控制資料按違約概率降序排列,如果pred var是評分,則descending 0,如果pred var是概率形式,則d...
AUC的相關知識及K S曲線和K S值介紹
tp fn fp tn如圖 如何計算畫roc曲線,我們將所有所有資料按照 概率有小到大排列 trr tp tp f n left frac right tp fn tp 又稱真正率 fpr fp fp t n left frac right fp tn fp 又稱負正率或假正率 roc曲線的橫軸為f...
ks 曲線 什麼是AR,KS,怎麼計算。
ar值 accuracy ratio 和ks值 kolmogorov smirnov 主要是為了監控模型的區分能力。所謂區分能力,以銀行為例,就是判斷乙個客戶或者企業會不會違約,通過模型計算,給出乙個會不會違約的 指標,乙個理想狀態下的模型給出的 指標應該是指標好的客戶違約了,那麼指標差的客戶就一定...