ks 曲線 R語言計算KS值 繪製KS曲線

2021-10-13 09:02:07 字數 2378 閱讀 7451

將**封裝在函式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 主要是為了監控模型的區分能力。所謂區分能力,以銀行為例,就是判斷乙個客戶或者企業會不會違約,通過模型計算,給出乙個會不會違約的 指標,乙個理想狀態下的模型給出的 指標應該是指標好的客戶違約了,那麼指標差的客戶就一定...