@77qingliu
2018-05-17T23:24:29.000000Z
字数 4479
阅读 2152
信用评分
标准评分卡采用的格式是评分卡的每一个变量都遵循一系列IF-THEN
法则。数据记录中每一个变量的值都适用此法则的结果决定了该特定变量所分配的分值。总分就是评分卡中所有变量的贡献的和。下变是一个示例:
标准评分卡的简单形式具有如下几方面的优势。
将估计的违约概率表示为p,则估计的正常概率为1-p。可以得到
合并公式,可以将评分卡的分值写成一下形式:
创建评分卡的基本过程可以总结为以下几个步骤。
以下的例子,演示生成创建评分卡代码的全过程:
%EqWBinn(CreditCard, CustAge , 5,CustAge_b , temp , cc.CustAge_Map);
%EqWBinn(temp , TmAtAddress, 5,TmAtAddress_b, temp1, cc.TmAtAddress_Map);
%EqWBinn(temp1 , CustIncome , 5,CustIncome_b , temp , cc.CustIncome_Map);
%EqWBinn(temp , TmWBank , 5,TmWBank_b , temp1, cc.TmWBank_Map);
%EqWBinn(temp1 , AmBalance , 5,AmBalance_b , temp , cc.AmBalance_Map);
%EqWBinn(temp , UtilRate , 5,UtilRate_b , temp1, cc.UtilRate_Map);
/* dummy grouping of nominal variables */
%dummyGrps(temp1,ResStatus,temp , cc.ResStatus_map);
%dummyGrps(temp ,empStatus,temp1, cc.empStatus_Map);
%dummyGrpn(temp1,OtherCC ,temp , cc.OtherCC_Map);
/* Calculate the WOE for all independent variables */
%CalcWOE(temp , CustAge_b , Status, cc.CustAge_WOE , CustAge_WOE , temp1);
%CalcWOE(temp1, TmAtAddress_b, Status, cc.TmAtAddress_WOE, TmAtAddress_WOE, temp );
%CalcWOE(temp , CustIncome_b, Status, cc.CustIncome_WOE , CustIncome_WOE , temp1);
%CalcWOE(temp1, TmWBank_b , Status, cc.TmWBank_WOE , TmWBank_WOE , temp );
%CalcWOE(temp , AmBalance_b , Status, cc.AmBalance_WOE , AmBalance_WOE , temp1);
%CalcWOE(temp1, UtilRate_b , Status, cc.UtilRate_WOE , UtilRate_WOE , temp );
%CalcWOE(temp , ResStatus_b , Status, cc.ResStatus_WOE , ResStatus_WOE , temp1);
%CalcWOE(temp1, EmpStatus_b , Status, cc.EmpStatus_WOE , EmpStatus_WOE , temp );
%CalcWOE(temp , OtherCC_b , Status, cc.OtherCC_WOE , OtherCC_WOE , cc.CreditCard_WOE);
/***********************************************************/
/* develop a stepwise logistic regression model with the
woe variables and store the model parameters in a dataset */
%let VarList=CustAge_WOE TmAtAddress_WOE CustIncome_WOE
TmWBank_WOE AmBalance_WOE UtilRate_WOE
ResStatus_WOE EmpStatus_WOE OtherCC_WOE;
proc logistic data=cc.CreditCard_WOE
OUTEST=cc.Model_Params ;
model Status (event='1')=&VarList /
selection =stepwise sls=0.05 sle=0.05;
run;
/* Generate the Scorecard Points dataset */
%let ModelDS=cc.Model_Params;
%let DVName=Status;
%let Lib=cc;
%let BasePoints=600;
%let BaseOdds=60;
%let PDO=20;
%let SCDSName=SCDS;
%GenSCDS(&MOdelDS,&Lib, &DVName, &BasePoints, &BaseOdds, &PDO, &SCDSName);
/* Use the scorecard points dataset to generate SAS code */
%let BasePoints=600;
%let BaseOdds=60;
%let PDO=20;
%let File=C:\Users\chase\Documents\GitHub\data_mining_self_learn\credit scoring\ScorecardDev\Examples;
%SCSasCode(SCDS,&BasePoints, &BaseOdds, &PDO, 1,&File);
生成的SAS评分代码的一部分:
生成评分卡及其实施代码之后,需要决定如何用其对记录进行筛选和分类。有几种方案,从设定简单的严格临界值到复杂得多阶分类。通常,这被称为评分策略。
评分策略的复杂程度取决于实施该策略的业务流程。例如,某一信用产品的申请可以根据得分划分为三类,如下表:
这种情况下,必须有相应的业务流程支持中间决策“人工干预”。该流程可能需要申请人提供收入正面或就业状况的正面,该业务还需要有一个流程去审查这些文件并做出合适的决策。
实施信贷策略的业务流程的灵活性决定了通常设定临界值的方案有三种。