評分卡模型開發 定量指標篩選

2021-08-18 19:00:32 字數 2836 閱讀 9308

library(informationvalue)

library(klar)

data

(germancredit)

train_kfold

<-sample(nrow(germancredit),800,replace=f)

train_kfolddata

<-germancredit[train_kfold,]

test_kfolddata

<-germancredit[-train_kfold,]

#將違約樣本用「1」表示,正常樣本用「0」表示。

credit_risk

<-ifelse(train_kfolddata[,"credit_risk"]=="good",0,1)

tmp<-train_kfolddata[,-21]

data

<-cbind(tmp,credit_risk)

#獲取定量指標

quant_vars

<-c("duration","amount","installment_rate","present_residence","age",

"number_credits","people_liable","credit_risk")

quant_germancredit

<-data[,quant_vars] #提取定量指標

#第一種方法:隨機森林法

library(party)

cf1<-cforest(credit_risk~.,data = quant_germancredit,

controls = cforest_unbiased(mtry=2,ntree=50))

varimp(cf1)

#基於變數均值的精度下降,獲取自變數的重要性

#mtry代表在每一棵樹的每個節點處隨機抽取mtry 個特徵,通過計算每個特徵蘊含的資訊量,特徵中選擇乙個最具有分類能力的特徵進行節點**。

#varimp代表重要性函式。

varimp(cf1,conditional = true)

#經過變數間的相關係數調整後,獲取自變數的重要性

varimpauc(cf1)

#經過變數間的不平衡性調整後,獲取自變數的重要性

#第二種方法:計算變數間的相對重要性,回歸法

library(relaimpo)

lmmod<-lm(credit_risk~.,data = quant_germancredit) #線性回歸

relimportance<-calc.relimp(lmmod,type = "lmg",rela = true)

#計算自變數間的相對重要性

sort(relimportance$lmg,decreasing = true)

#排序並輸出自變數間的相對重要性

#第三種方法:自變數間的廣義交叉驗證法

library(earth)

marsmodel

<-earth(credit_risk~.,data = quant_germancredit)

ev<-evimp(marsmodel)

ev#經過自變數間的廣義交叉驗證後,獲取自變數的重要性

#第四種方法:自變數的逐步回歸法

base.mod

<-lm(credit_risk~1,data = quant_germancredit)

#獲取線性回歸模型的截距

all.mod

<-lm(credit_risk~.,data = quant_germancredit)

#獲取完整的線性回歸模型

stepmod<-step(base.mod,scope = list(lower=base.mod,upper=all.mod),

direction = "both",trace = 0,steps = 1000)

#採用雙向逐步回歸法,篩選變數

shortlistedvars<-names(unlist(stepmod[[1]]))

#獲取逐步回歸得到的變數列表

shortlistedvars<-shortlistedvars[!shortlistedvars %in%"(intercept)"]

#刪除逐步回歸的截距

print(shortlistedvars)

#輸出逐步回歸後得到的變數

#第五種方法:"boruta"法

library(boruta)

boruta_output

<-boruta(credit_risk~.,data = na.omit(quant_germancredit),

dotrace=2)

boruta_signif

<-names(boruta_output$finaldecision[

boruta_output$finaldecision %in%c("confirmed","tentative")])

#獲取自變數中確定的和實驗性的指標

print(boruta_signif)

#levels: tentative confirmed rejected

#confirmed堅定的;tentative躊躇的;rejected拒絕的

plot(boruta_output,cex.axis=.7,las=2,xlab="",main="variable importance")

#繪製變數顯著性表示的箱圖

python評分卡模型 簡書 評分卡模型

信用評分卡分類 a卡 申請評分卡,側重貸前,在客戶獲取期,建立信用風險評分,客戶帶來違約風險的概率大小 b卡 行為評分卡,側重貸中,在客戶申請處理期,建立申請風險評分模型,客戶開戶後一定時期內違約拖欠的風險概率,有效排除了信用不良客戶和非目標客戶的申請 c卡 催收評分卡,側重貸後,在帳戶管理期,建立...

金融風控 申請評分卡模型 申請評分卡介紹

從這篇博文開始,我將總結金融風控中的另外乙個模型 申請評分卡模型。這篇博文將主要來介紹申請評分卡的一些基本概念。本篇博文將以以下四個主題來進行介紹說明 交易對手未能履行約定契約中的義務而造成經濟損失的風險,即受信人不能履行還本付息的責任而使授信人的預期收益與實際收益發生偏離的可能性它是金融風險的主要...

R做評分卡模型 實戰

變數含義 讀入資料 x ndata 0 mpaichu n m 排除項 data17 k zhongjian 定義y y which data1 overdue 0 0 y which data1 overdue 7 1 m01m02 m03m06 m07m10 m11m12 m13m16 m17m...