1. 程式人生 > >信用風險評分卡研究-第5章

信用風險評分卡研究-第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;