ks 曲线_R语言计算KS值、绘制KS曲线
更多大数据分析、建模等内容请关注gongzhonghao《bigdatamodeling》
将代码封装在函数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)
6
7 df
8
9 if (descending==1){
10 df1
11 }else if (descending==0){
12 df1
13 }
14
15 df1$good1
16 df1$bad1
17 df1$cum_good1
18 df1$cum_bad1
19 df1$rate_good1
20 df1$rate_bad1
21
22 if (descending==1){
23 df2
24 }else if (descending==0){
25 df2
26 }
27
28 df2$good2
29 df2$bad2
30 df2$cum_good2
31 df2$cum_bad2
32 df2$rate_good2
33 df2$rate_bad2
34
35 rate_good
36 rate_bad
37 df_ks
38
39 df_ks$KS
40
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
50
51 M_KS
52 Pop
53 M_good
54 M_bad
55
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)+
61
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)+
66
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)+
68
69 scale_x_continuous(breaks=seq(0,1,.2))+
70 scale_y_continuous(breaks=seq(0,1,.2))+
71
72 xlab("of Total Population")+
73 ylab("of Total Bad/Good")+
74
75 ggtitle(label="KS - Chart")+
76
77 theme_bw()+
78
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 )
85
86 result
87 return(result)
88 }
作图如下:
ks 曲线_R语言计算KS值、绘制KS曲线相关推荐
- R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值、plot.roc函数绘制ROC曲线、添加置信区间、为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来
R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值.plot.roc函数绘制ROC曲线.添加置信区间.为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来 目录
- 语言nomogram校准曲线图_R语言实现Cox模型校准度曲线绘制
01 研究背景 这是关于cox模型的第二篇文章,上一篇文章分享了运用Lasso回归如何筛选变量,将筛选后的变量绘制Nomogram图,本章分享构建模型后,如何绘制校准曲线. cox模型的验证不同于Lo ...
- R语言使用pROC包绘制ROC曲线、获取最优阈值(threshold)及最优阈值对应的置信区间
R语言使用pROC包绘制ROC曲线并获取最佳阈值(threshold)及最佳阈值对应的置信区间 #ROC曲线 ROC(receiver operating characteristic curve)接 ...
- R语言使用pROC包绘制ROC曲线并使用smooth函数绘制平滑的ROC曲线(方法包括:binormal、density、fitdistr、logcondens、logcondens.smooth)
R语言使用pROC包绘制ROC曲线并使用smooth函数绘制平滑的ROC曲线(方法包括:binormal.density.fitdistr.logcondens.logcondens.smooth) ...
- 偏AUC(partial AUC)或者部分AUC是什么?R语言使用pROC包绘制ROC曲线并定义偏AUC(partial AUC):分别聚焦特异度、敏感度角度
偏AUC(partial AUC)或者部分AUC是什么?R语言使用pROC包绘制ROC曲线并定义偏AUC(partial AUC):分别聚焦特异度.敏感度角度 目录
- matlab roc曲线,MATLAB画ROC曲线,及计算AUC值
标签: 根据决策值和真实标签画ROC曲线,同时计算AUC的值 function auc = roc_curve(deci,label_y) %%deci=wx+b, label_y, true lab ...
- matlab计算prc曲线auc面积,MATLAB画ROC曲线,及计算AUC值
根据决策值和真实标签画ROC曲线,同时计算AUC的值 步骤: 根据决策值和真实标签画ROC曲线,同时计算AUC的值: 计算算法的决策函数值deci 根据决策函数值deci对真实标签y进行降序排序,得到 ...
- python的roc曲线与阈值_python 使用sklearn绘制roc曲线选取合适的分类阈值
https://zhuanlan.zhihu.com/p/26293316 比如, 我已经初步训练好了一个模型,现在我想用这个模型从海量的无标记数据集挖掘出某一类数据A,并且想要尽量不包含其他所有类B ...
- python画pr曲线代码_Yolov3测试图及绘制PR曲线,yoloV3,map,和,画
训练指令:./darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 | tee train_yolov3.lo ...
最新文章
- [BZOJ1984] 月下“毛景树”
- OpenCV A-KAZE匹配的实例(附完整代码)
- java中循环语句_Java语法基础之循环结构语句详解
- antdesign的表单中的下拉框设置默认值BUG处理
- 2019年6月 阿里技术面试题集锦(28道含答案)
- rsync+sersync大数据T级以上进行同步方法
- mysql水平分表实践记录_MYSQL 分表实践
- android 编译,gradle
- 串口的原始模式和标准模式
- 疫情数据汇总为csv文件
- 小程序轮播图组件跳转到自定义页面
- 香港的房价真的那么贵吗?用数据挖掘真相!
- 2.基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地
- 真正的高手,都在培养系统
- 常见游戏设计思路及手法
- 【2022年终总结】总结自己的2022,展望2023
- 如何对构建基因克隆的测序结果批量进行序列比对并输出结果
- riscv-gnu-toolchain工具链-从下载到运行
- ffmpeg播放MP4视频与分离音频
- 论月饼黑科技和云蛛系统产品线的殊同