利用R语言对贷款客户作风险评估
利用R语言对贷款客户作风险评估(上)——数据分析
前言
风险控制能力越来越成为互联网金融行业的隐形门槛,为风控人员提供显著地风险评估依据变得非常重要。本文以银行客户的信用卡信息为案例数据,对数据进行分析为信贷管理的风控人员提供风险评估依据。本文做以下几方面的工作:
- 处理原始数据,进行数据探索
- 好坏客户为因变量,处理不平衡数据的二分类问题
- 将逾期还款次数作为新的因变量做零膨胀回归问题,旨在为信贷管理的风控人员提供风险评估依据
一、数据分析
数据来源
本文采用的案例数据来自UCI机器学习数据库,为台湾某银行信用卡客户信息表。该数据一共有30000个观测样本,23个自变量,1个二元目标变量,无缺失值。
数据处理
部分数据需要进行预处理,因为婚姻状况本身只有三种:1=married;2=single; 3=others,而在原数据中却出现了数据值为0的婚姻状况。同样的,在 教育程度的变量中,1=graduate school ; 2=university ; 3=high school ; 4=others ,但也出现的意义不明的值,我们需要将这些值以及others统统转换成unkown 。具体的变量情况如表1.1:
数据探索
对数据进行一个基本 面的分析,查看数据变量的分布情况,以便更好地理解数据。首先,通过图1.1的分布可以看到:使用信用卡的单身人数多于已婚人士;使用信用卡的本科学历最多;女性使用者大于男性。
从因变量的分布可以看出好客户远多于坏客户;将年龄按好坏客户分成两组数据, 用KS检验来看这两组数据是否有显著性差异,结果P值小于0.05,说明两组数据的分布差异不显著。同样的方法也可验证信用卡额度在好坏客户之间没有显著性差异。
R语言代码如下:
rm(list=ls(all=TRUE))
card=read.csv("card2.csv")card$sex<-as.factor(card$sex)
card$mar<-as.factor(card$mar)
card$edu<-as.factor(card$edu)
card$pre<-as.factor(card$pre)
card$a<-as.factor(card$a)
card$b<-as.factor(card$b)
card$c<-as.factor(card$c)
card$d<-as.factor(card$d)
card$e<-as.factor(card$e)
card$f<-as.factor(card$f)
summary(card) #计算数据的主要描述统计量library(ggplot2)
library(plyr)
library(dplyr)
library(Rmisc)
#因子类型变量
bar1<-ggplot(card)+geom_bar(width=1, aes(x=factor(1),fill=card$mar))+ coord_polar(theta="y")
bar2<-ggplot(card)+geom_bar(width=1, aes(x=factor(1),fill=card$sex))+ coord_polar(theta="y")
bar3<-ggplot(card)+geom_bar(width=1, aes(x=factor(1),fill=card$edu))+coord_polar(theta="y")
bar4<-ggplot(card)+geom_bar(width=1, aes(x=factor(1),fill=card$pre))+coord_polar(theta="y")
multiplot(bar1, bar2, bar3,bar4,cols=2)
#数值型变量
box1<-ggplot(card,aes(x=pre,y=age,fill=pre)) +geom_boxplot() + theme_bw() + # 一种ggplot的主题labs(x = '好坏客户', y = '年龄') # 设置横纵坐标标签
box2<-ggplot(card,aes(x=pre,y=carde,fill=pre)) +geom_boxplot() + theme_bw() + # 一种ggplot的主题labs(x = '好坏客户', y = '信用卡额度') # 设置横纵坐标标签
multiplot(box1,box2,cols=2)#####KS检验:检验好坏客户在年龄,信用卡额度上是否有显著差异
table(card$pre)
pre0=card[which(card$pre==0),]
pre1=card[which(card$pre==1),]age0<-pre0$age
age1<-pre1$age
ks.test(age0,age1)#P值小于005,说明两组数据没有显著差异carde0<-pre0$carde
carde1<-pre1$carde
ks.test(t(carde0),t(carde1))
利用R语言对贷款客户作风险评估相关推荐
- 利用R语言对贷款客户作风险评估(下)——零膨胀回归分析
利用R语言对贷款客户作风险评估(下)--零膨胀回归分析 前言 上一篇的分类预测是决定好坏客户的初步判断, 不足以直接决策, 因此还需要进一步分析. 通过随机森林, 对影响好坏客户的解释变量的重要性进行 ...
- R语言setdiff函数集合作差运算实战
R语言setdiff函数集合作差运算实战 目录 R语言setdiff函数集合作差运算实战 #基本语法 #setdiff函数用于数值向量
- 利用R语言对泰坦尼克号沉没事件幸存者的数据分析与预测
题外话:在文章正式开始之前,我还是想先写一点题外话,一是为了引出写作这篇博客的目的,二则是希望能够记录下现在的所思所想为以后留个纪念.首先介绍一下自己,毕业3年多的小硕一枚,大学期间学的专业是高分子材 ...
- 利用R语言画简单时间序列图
R 语言无法自动将读取的数据转化为时间序列格式, 所以利用R语言画时间序列图的一个关键步骤就是将读取的数据转变为时间序列格式, 下面是一个简单的程序: # 读取数据, 首先将excel 格式的转化为 ...
- 利用R语言irr包计算ICC值(组内相关系数)
ICC值是一个较为陌生的概念,在统计学中应用较多,引用百度百科的介绍: 组内相关系数(ICC)是衡量和评价观察者间信度(inter-observer reliability)和复测信度(test-re ...
- 利用R语言进行线性/非线性回归拟合实例(1)
利用R语言进行线性/非线性回归拟合实例(1) 1. 生成一组数据 vector<float>xxvec; vector<float>yyvec; ofstreamfout(&q ...
- 利用R语言制作好看的Meta分析文献偏倚风险图
在<Meta踩坑集>里,向大家分享了使用RevMan进行基本的文献偏移风险图是如何制作的.在很多文献里,我们看到的偏倚风险图都长这样: 但也有的文献偏移风险图长这样: 那这些花里胡哨,看起 ...
- 【问题导向】利用R语言进行情感分析
目录 前言 问题分析 R语言的安装 情感分析 分类的原理 未来学习计划 引文 前言 R语言是统计领域的一个重要工具,其中有很多独特的包能够实现特定功能,在进行GIS分析时有非常大的用处. 笔者最近在帮 ...
- java集成r语言_R语言- 实验报告 - 利用R语言脚本与Java相互调用
一.实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调用 ...
最新文章
- Android SimpleAdapter显示ListView、GridView
- 2.8加密工具与散列
- 从阿里前端工程化中台实践,看中台建设的舍与得
- 【转】mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
- 巴斯卡三角形 and 數字位移
- 菜单自定义图标_操作系统任务栏了解多少,Windows server 2008 R2自定义通知区域...
- MAC终端安装grunt--javascript世界得构建工具
- UDP丢包问题及解决方案
- 演练 打印九九乘法表
- ionic4 富文本
- C/C++图书管理系统
- JDK 8 最后一个免费版本 下载
- Aria2保姆级教程
- Siamese 目标跟踪:Learning to Fuse Asymmetric Feature Maps in Siamese Trackers(CVPR2021)
- python中将字符变为大写_python如何把小写字母变成大写字母
- Windows 7下vc2010编译使用redis 3.0
- 检测和缓解PLC恶意软件的过程计算方法
- 线程状态,优先级,守护线程基础详解
- 矩形广告是什么?矩形广告如何设置?
- LINUX下LAMP与PHPWIND