[关闭]
@77qingliu 2018-05-17T23:24:29.000000Z 字数 4479 阅读 2152

评分卡刻度和实施

信用评分


标准评分卡采用的格式是评分卡的每一个变量都遵循一系列IF-THEN法则。数据记录中每一个变量的值都适用此法则的结果决定了该特定变量所分配的分值。总分就是评分卡中所有变量的贡献的和。下变是一个示例:
image.png-163kB
标准评分卡的简单形式具有如下几方面的优势。

评分卡刻度

将估计的违约概率表示为p,则估计的正常概率为1-p。可以得到


评分卡设定的刻度值可以通过将分值表示为比率对数的线性表达式来定义。如下:

其中,A和B是常数。方程中的符号可以使得违约概率越低,得分越高。
logistic回归模型计算比率如下:

常数A和B的值可以通过将两个已知或假设的分值代入公式得到。通常,需要两个假设:

分值分配

合并公式,可以将评分卡的分值写成一下形式:


由于所有变量都进行了WOE转换,将转换后的变量代入上式,得到:

上式便是最终评分卡的公式。整理成下表:
image.png-155.7kB

SAS实施

创建评分卡的基本过程可以总结为以下几个步骤。

  1. 最终评分卡确定将被纳入模型的变量
  2. 使用WOE值和模型参数,为不同变量的每一类或每一段相应的分配分值。模型的截距项用于计算评分卡的基准点。
  3. 每个变量类别或分段分配的分值都根据对应的变量取值范围制成表格。
  4. 为了便于实施,经常要将评分卡表现为某种程序的形式。如SAS,SQL,C。
    下图概括了用SAS实施生成最终评分卡所要采取的步骤。
    image.png-164.8kB
    对于字符串和数值型变量,可以分布用宏%DummyGrps%DummyGrpn进行虚拟变量降基。这两个宏的参数相同,宏的参数如下:
    image.png-110.7kB
    %GenSCDS用来生成包含评分卡得分的中间数据集。该数据集将以SAS或者SQL的形式生成不同的评分卡代码,该宏的参数如下:
    image.png-185.5kB
    然后,可以用数据集SCDS重新生成几种形式的评分卡。这里有四个宏,可以生成SAS,SQL和C,以及CSV文件的形式评分代码的评分卡。
    image.png-108.3kB
    下表给出了宏%SCSSasCode的参数:
    image.png-175.9kB

以下的例子,演示生成创建评分卡代码的全过程:

  1. %EqWBinn(CreditCard, CustAge , 5,CustAge_b , temp , cc.CustAge_Map);
  2. %EqWBinn(temp , TmAtAddress, 5,TmAtAddress_b, temp1, cc.TmAtAddress_Map);
  3. %EqWBinn(temp1 , CustIncome , 5,CustIncome_b , temp , cc.CustIncome_Map);
  4. %EqWBinn(temp , TmWBank , 5,TmWBank_b , temp1, cc.TmWBank_Map);
  5. %EqWBinn(temp1 , AmBalance , 5,AmBalance_b , temp , cc.AmBalance_Map);
  6. %EqWBinn(temp , UtilRate , 5,UtilRate_b , temp1, cc.UtilRate_Map);
  7. /* dummy grouping of nominal variables */
  8. %dummyGrps(temp1,ResStatus,temp , cc.ResStatus_map);
  9. %dummyGrps(temp ,empStatus,temp1, cc.empStatus_Map);
  10. %dummyGrpn(temp1,OtherCC ,temp , cc.OtherCC_Map);
  11. /* Calculate the WOE for all independent variables */
  12. %CalcWOE(temp , CustAge_b , Status, cc.CustAge_WOE , CustAge_WOE , temp1);
  13. %CalcWOE(temp1, TmAtAddress_b, Status, cc.TmAtAddress_WOE, TmAtAddress_WOE, temp );
  14. %CalcWOE(temp , CustIncome_b, Status, cc.CustIncome_WOE , CustIncome_WOE , temp1);
  15. %CalcWOE(temp1, TmWBank_b , Status, cc.TmWBank_WOE , TmWBank_WOE , temp );
  16. %CalcWOE(temp , AmBalance_b , Status, cc.AmBalance_WOE , AmBalance_WOE , temp1);
  17. %CalcWOE(temp1, UtilRate_b , Status, cc.UtilRate_WOE , UtilRate_WOE , temp );
  18. %CalcWOE(temp , ResStatus_b , Status, cc.ResStatus_WOE , ResStatus_WOE , temp1);
  19. %CalcWOE(temp1, EmpStatus_b , Status, cc.EmpStatus_WOE , EmpStatus_WOE , temp );
  20. %CalcWOE(temp , OtherCC_b , Status, cc.OtherCC_WOE , OtherCC_WOE , cc.CreditCard_WOE);
  21. /***********************************************************/
  22. /* develop a stepwise logistic regression model with the
  23. woe variables and store the model parameters in a dataset */
  24. %let VarList=CustAge_WOE TmAtAddress_WOE CustIncome_WOE
  25. TmWBank_WOE AmBalance_WOE UtilRate_WOE
  26. ResStatus_WOE EmpStatus_WOE OtherCC_WOE;
  27. proc logistic data=cc.CreditCard_WOE
  28. OUTEST=cc.Model_Params ;
  29. model Status (event='1')=&VarList /
  30. selection =stepwise sls=0.05 sle=0.05;
  31. run;
  32. /* Generate the Scorecard Points dataset */
  33. %let ModelDS=cc.Model_Params;
  34. %let DVName=Status;
  35. %let Lib=cc;
  36. %let BasePoints=600;
  37. %let BaseOdds=60;
  38. %let PDO=20;
  39. %let SCDSName=SCDS;
  40. %GenSCDS(&MOdelDS,&Lib, &DVName, &BasePoints, &BaseOdds, &PDO, &SCDSName);
  41. /* Use the scorecard points dataset to generate SAS code */
  42. %let BasePoints=600;
  43. %let BaseOdds=60;
  44. %let PDO=20;
  45. %let File=C:\Users\chase\Documents\GitHub\data_mining_self_learn\credit scoring\ScorecardDev\Examples;
  46. %SCSasCode(SCDS,&BasePoints, &BaseOdds, &PDO, 1,&File);

生成的SAS评分代码的一部分:
image.png-306.4kB

设定临界值水平

生成评分卡及其实施代码之后,需要决定如何用其对记录进行筛选和分类。有几种方案,从设定简单的严格临界值到复杂得多阶分类。通常,这被称为评分策略。
评分策略的复杂程度取决于实施该策略的业务流程。例如,某一信用产品的申请可以根据得分划分为三类,如下表:
image.png-49.6kB
这种情况下,必须有相应的业务流程支持中间决策“人工干预”。该流程可能需要申请人提供收入正面或就业状况的正面,该业务还需要有一个流程去审查这些文件并做出合适的决策。

实施信贷策略的业务流程的灵活性决定了通常设定临界值的方案有三种。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注