信用风险评分卡研究-第5章

本章主要回顾信用风险评分中一些常用的数据准备过程。
原则上,数据准备重点关注的是:
1、从不同渠道收集和整合建立评分卡所需的数据;
2、清理数据中所有意外错误或被认为是极端值的取值;
3、生成另外的候选因变量,期望它们可以帮助提高模型的预测力。
数据准备的最终结果是建模视图以及在评分视图中使用的新变量的定义。
数据描述和数据准备可以看一个简化的步骤。数据准备以数据描述为指导,而数据准备阶段生成的新变量还需要另外的分析和探索。如果意识到数据准备阶段将消耗总项目时间的80%,必然认识到有效执行数据准备阶段的重要性。
有三项数据准备任务对于评分卡开发是十分关键的,并且也是本章讨论的重点。
1、通过将某些类别合并降低名义变量的基数性。
2、将连续变量分段,以进行证据权重转换。
3、抽样和权重计算。

上述的前两项任务也常被称为变量的分群。通常,进行分段和降低基数性是为了使生成的变量的预测力最强。因此,最优分段和最优降基通常都是最优分群。
因为其用户友好的图形用户界面,决策树软件包是进行最优分群的常用工具。这些GUI允许用户观后自变量分群的结果,同时衡量它们的预测力。然而,大多决策树软件开不是提供自动分群程序的简单方法。通常,要求用户交互使用该软件对分群进行可视化及微调,然后在SAS中复制该分群,或将决策树结果输出为SAS代码,或者通过人工编码,无论何时在软件中都有该选项。
本章将介绍一些SAS宏,可以以一种在自动数据准备和建模脚本中易于集成的方法计算最优分群。
建议读者考虑使用决策树软件包探索潜在的分群方案。本章介绍的宏可以用于探索使用决策树GUI执行分群计划后最终自动化的过程。

降低基数
当名义变量的类别数大于12个,降低基数就变得非常必要。降低名义变量的基数有三个主要策略:
1、将相同含义的变量合并。这种方法的优点是,基于各类别变量的含义易于解释和判断。但是,由于没有考虑默认的状态变量和被合并的类别之间的关联性,可能导致预测力降低。
2、出现频率小的类别被合并为一个新的类别,并给予一个适合的标识,如:other
3、最后一种方法,也是绝大部分评分卡开发人员偏爱的一种方法,是合并变量的类别使某些预测力指标最大化。第4章讨论的许多预测力指标都可以用于这个目的。唯一的剽该指标要适合用于处理二元变量,即因变量,和一个名义变量,也就是被缩减掉的变量。
上面提到的SAS实现中的前两种都 一些IF-THEN-ELSE条件的简单数据步。这些条件的具体形式取决于被合并的类别。由于这始终是一个特设程序,取决于分析人员的理解和类别描述,将不介绍其实施过程。本书将重点介绍更的第三咱方法:最优分群。
进行最优分组的算法是基于建立决策树模型所用的方法。
首先假设所有类别都属于一个组,然后,找出最优的二元分割方法;这样,被选中的分组方案中每一组的预测力指标都能够获得所有可能的备选分组中的最大值。

宏%ReduceCats可以实现表5.1中四项指标,降低带有字符值的名义自变量IVVAR的基数,使用一个二元因变量DVVAR,从而将类别数减少为MMAX。宏的运行结果是存储在数据集DSVARMP中的映射方案。参数METHOD决定 找出最优分群方案的标准。

宏%ReduceCats调用另外四个宏,它们在降低基数的过程中执行部分中间运算。这些宏也包含在存储宏%ReduceCats的文件当中。

由宏%REDUCECATS生成的降低基数的映射方案可以通过宏%APPLYMAPL适用于数据集。
宏%APPLYMAPL生成一系列IF-THEN条件,并用它们将初始类别映射到其相等的分段数。

宏%ReduceCats希望名义变量VarX的值是字符串。如果该变量的类别用数量表示,需要转换为字符值才能保证上述宏正常工作。SAS中有多种方法将数量值转换为相等的字符。

连续变量的分段
连续变量必须要分段,以允许使用标准评分卡格式。信用评分卡开发中有两种常用的分段方法:等距分段和最优分段。
在等距分段中,连续变量的取值范围被分为预先确定数量的等宽度区间。这种方法有两个优势;一是简单,易于用SAS或其他数据处理软件实施。二是分段方案的解释和理由更容易被评分卡用户所接受。
%EqWBinn对连续变量进行等距分段。在第3章中它被用于计算连续变量的直方图的值。该宏还可用于对连续变量分段,以将其转换为名义变量。这种情况下,给定的名义值就是分段数。

接下来的将介绍对连续变量的最优分段,相当于名义变量的最优分群。实际上,最优分段和最优分群中使用的算法都是基于相同的概念和方法。在下面将介绍的一种方法中,连续变量被分为大量的初始宽度相等的段。比如50个。这些段被看作名义变量的类,并用与第5.2节中相同的程序将其分为预定数量的群。然而,在这种情况下,需要在分组中考虑到分段范围的取值顺序,以保持初始变量表现在一个连续真实刻度上的性质。

宏%BinContVar提供了图5.2中算法的SAS实施。宏参数ACC规定了最小分段的规模是变量IVVAR取值范围的百分比。该宏首先将变量IVVAR的取值范围分成1/ACC个段;然后对些段进行分组,直到只剩下MMAX个为止。典型的ACC的取值范围是0.01到0.005,因此首先将20-100个等距分段开始该算法。ACC值越小,对于大型数据集来说宏运行的时候越长。宏的运行结果是数据集DSVARMAP,其中包含每个分段的下限和上限,以及记录的数量。
宏%BINCONTVAR的参数
DSIN-输入数据集
IVVAR-连续自变量
DVVAR-二元因变量
METHOD-进行最优分群的方法
MMAX-设定的分组数量
ACC-最小分段的百分比规模
DSVARMAP-包含映射规则的输出数据集

宏%BINCONTVAR调用4个额外的宏,在分段过程中这些宏将执行一些中间计算。这些宏都与宏%BINCONTVAR存储在同一个文件中,因为它们的存在都只为同一个目的。

由宏%BINCONTVAR生成的最优分段映射也可通过宏%APPLYMAP2应用于数据集,基参数详见表5.5.该宏通过生成一组IF-THEN语句来定义输出数据集中新变量的分段数量。

例5.3数据集Customers中包含两个变量的200条记录;INCOME和DEFAULT。将DEFAULT作为因变量,用宏%BINCONTVAR将变量INCOME分为5段,如例5.5所示。
宏%APPLYMAP2的参数
DSIN-输入数据集
VARX-进行分段的连续自变量
NEWVARX-变量VARX的分段形式
DSVARMAP-由宏%BINCONTVAR生成的分段限制数据库
DSOUT-输出数据集

列表5.5使用宏%BINCONTVAR对变量INCOME进行分段
%LET DSIN=CUSTOMERS;
%LET IVVAR=INCOME;
%LET DVVAR=DEFAULT;
%LET METHOD=1;
%LET MMAX=5;
%LET ACC=0.01;
%LET DSVARMAP=INCOME_MAP;

%BINCONTVAR(&DSIN,&IVVAR,&DVVAR,&METHOD,&MMAX,&ACC,&DSVARMAP);

%LET DSIN=CUSTOMERS;
%LET VARX=INCOME;
%LET NEWVARX=INCOME_BIN;
%LET DSVARMAP=INCOME_MAP;
%LET DSOUT=CUSTOMERS_INCOME_B;

%APPLYMAP2(&DSIN,&VARX,&NEWVARX,&DSVARMAP,&DSOUT);

抽样和权重计算
1、抽样方法
信用评分卡开发是基于对申请或交易数据库的抽样。通过,这此数据库包含大量记录,因此必须进行抽样。信用评分卡开发中有三种常用的抽样方法:
1)随机抽样
2)均衡抽样
3)分层抽样

随机抽样中,从总体样本抽取两个不相交的样本,不能互相代替,可以创建开发(训练)和验证分区。

在均衡抽样中,设计的样本中目标变量具有特定的构成,如50%的正常50%的违约。强制样本具有这样的构成的同时,还必须定义一个权重变量以将其比例还原到在总体中的初始值。另外在LOGISTIC回归模型中,总体中正常和违约事件初始比例应当作为因变量的先验概率。

最后,在分层抽样中,用一个或多个与业务申请相关的变量的值将数据分层。为了将指定的开发和验证集,随机抽样或均衡抽样可以应用到每一分层。

在一些文献和商业软件包中,术语分层抽样通常就意味着均衡抽样,在这个意义上,就是用状态变量的值对样本进行分层,以设计开发和验证数据集。

样本规模
抽样理论给出了某些只包含一个或两个变量的一些简单情况下的最小样本规模理论。然而,在评分卡中常用的数据集中包含名义变量、顺序变量和连续变量的综合时,不存在这亲的理论。

一些企业根据自身经验,自行设定了评分卡开发中使用的数据集规模的内部标准。原则上,这些标准无法以任何方式保证在评分卡开发中使用的指定样本规模是最优的。但是,它们能够确保不同时期,不同分析人员开发的评分卡,或多或少都是可以被该企业接受的相同一般假设。

随机抽样
PROC SURVEYSELECT可用于从数据集中抽取随机样本。宏%RANDOMSAMPLE是PROC SURVEYSELECT的一个简单形式,以方便其使用,如列表5.6所示。
%MACRO RANDOMSIMPLE(POPDS,SAMPLEDS,SAMPLESIZE);
PROC SURVEYSELECT
DATA=&POPDS
METHOD=SRS
N=&SAMPLESIZE
NOPRINT
OUT=&SAMPLEDS;
RUN;

%MEND;

可以用宏%RANDOMSAMPLE从总体中抽取两个随机样本,分别作为开发数据集和验证数据集。但是,无法保证这两个数据庥是不相交的,即两个数据集中的记录可能发生重合。为了从一个总体数据集中抽取两个不相交的样本,提供了宏%R2PARTIONS,表5.6是其参数。
需要注意的是,在使用宏参数M_ ERROR调用宏之前,需要生成并将其初始化零字符串。

宏%R2PARTITION的参数
DSIN-输入数据(总体)
IDVAR-ID变量
DS1-第一个随机即样本
DS2-第二个随机即样本
N1-DS1的规模
NS-DS2的规模
M_ERROR-错误信息

列表5.7中代码生成一个包含1000条记录的数据集,用宏%R2PARTITIONS将其分为M和V两部分,分别包含600条和400条记录。

5.7抽取两个不同的随机样本
DATA CUSTOMERS2;
DO ID=1 TO 1000;
DEFAULT=INT(1.5*RANUNI(0));
OUTPUT;
END;
RUN;

%LET DSIN=CUSTOMERS2;
%LET IDVAR=ID;
%LET DS1=M;
%LET DS2=V;
%LET N1=600;
%LET N2=400;
%LET ERROR=;

%R2PARTITIONS(&DSIN,&IDVAR,&DS1,&DS2,&N1,&N2,ERROR);

样本均衡抽样
在均衡抽样中,从总体中抽取两个样本,每个样本中违约的百分比与初始总体不同。图5.3表示从规模为N的总体中抽取的两个样本DS1和DS2,其规模分别是N1和N2。

如果总体中违约比例是P,样本DS1和DS2中分别是P1和P2,总体中具有违约状态的记录数量必须满足抽取两个样本的需要。这被称为一致性条件,其正式表达式如下:

需要注意的是:公式5.1中第一个条件是通过合并第二个和第三个条件得到的。第一个条件能确保两个样本中包含的记录数量不超过原始数据集。第二个和第三个条件确保两个样本中包含违约和正常的记录数不超过原始数据集。

如5.3所示,宏%B2PARTITIONS 尝试抽取两个样本并验证一致性条件。如果这种划分可行,变量M_ERRORu将返回OK。宏%B2PARTITIONS的参数详见表5.7.

列表5.8 中的代码生成一个包含1500条记录的数据集,其违约率20%。抽取两个样本,第一个样本是Modling,包含500条记录,违约率是50%,第二个样本是VALIDATION,违约率是20%。然后该程序用PROC FREQ 验证因变量DV中违约率。

5.7宏%B2PARTITIONS的参数
DSIN-输入数据集(总体)
IDVAR-ID变量
DS1-第一个均衡样本的名称
N1,P1-DS1的规模及其中违约率
DS2-第二个均衡样本的名称
N2,P2-DS2的规模及其中违约率
M_ERROR-错误信息

5.8使用宏%B2PARTITIONS的示例
DATA POPULATION;
DO ID=1 TO 1500;
IF ID<=300 THEN DV=1;
ELSE DV=0;
X=RANUNI(0);
OUTPUT;
END;
RUN;

%LET S=POPULATION;
%LET IDVAR=ID;
%LET DV=DV;
%LET S1=MODELING;
%LET N1=500;
%LET P1=0.50;
%LET S2=VALIDATION;
%LET N2=200;
%LET P2=0.20;
%LET STATUS=;

%B2PARTITIONS(&S,&IDVAR,&DV,&S1,&N1,&P1,&S2,&N2,&P2,STATUS);

PUT &STATUS;

PROC FREQ DATA=MODELING;
TABLE DV;
RUN;

PROC FREQ DATA=VALIDATION;
TABLE DV;
RUN;

以表5.8中总体和抽样为例,理解如何对均衡样本分配权重。
定义一个因子,该因子将映射样本DS1中的2500条记录以代表总体中初始的10000条记录,由此可以计算出样本中标识为违约的记录的权重。在正常记录的情况下重复这种逻辑。
值4.0和36.1可以用能够保留两者之间的比例关系,即1比9的任何其他数字替代。实践当中,通常要正态化这些值,例其和为1.0。这种情况下,正态化上述值为0.1代表违约,0.9代表正常。这些计算公式详见表5.9.

表5.9均衡样本权重赋值
宏%BSWEIGHT为样本数据集SDS创建了权重变量WTVAR。该样本是来自总体POPDSC的抽样,因变量DVVAR分为0和1两类。表5.10是这些参数的列表。
%BSWEIGHT的参数
POPDS-总体数据集
SDS-均衡抽样数据集
DVVAR-因变量(违约=1,正常=0)
WTVAR-权重变量的名称
DSOUT-包含权重变量的输出数据集

列表5.9中的代码生成两个具有不同违约率的数据集POPULATION和Modeling。用宏%BSWEIGHT计算数据集MODELING的权重值并存储到新变量WEIGHT中。然后,用PROC FREQ确认权重值 在违约和正常记录中的分布。

应用宏%BSWEIGHT的示例

DATA POPULATION;
....
RUN;

DATA MODELING;
....
RUN;

%LET POPDS=POPULATION;
%LET SDS =MODELING;
%LET DVVAR=DV;
%LET WTVAR=WEIGHT;
%LET DSOUT=MODELING_W;

%BSWEIGHT(&POPDS,&SDS,&DVVAR,&WTVAR,&DSOUT);

PROC FREQ DATA=MODELING_W;
TABEL WEIGHT*DV/NOROW NOCOL NOPERCENT;
RUN;

猜你喜欢

转载自www.cnblogs.com/wdkshy/p/9888710.html