《信用風險評分卡研究——基於SAS的開發與實施》學習筆記(1)
阿新 • • 發佈:2019-02-08
所有模型都要進行前期資料準備工作。在此,假設所有資料都已經準備完畢。
注:該系列文章都是學習馬姆杜 雷法特著的《信用風險評分卡研究——基於SAS的開發與實施》一書時的學習記錄和練手,供以後自己檢視。畢竟,。如有不準確或不清楚的地方,請查詢原著。
WOE證據權重法
1.WOE計算方法
- 計算該變數不同類別的正常、違約佔比分佈。(=該類別的正常頻數/該變數的正常頻數)
- 該類別的WOE=ln(違約分佈/正常分佈)。
2.不同變數的WOE
- 連續變數——最有分段、等寬分段
3.基於SAS的等寬分段
- 程式碼如下:
%macro EqwBin(Dsin,Xvar,Nb,XBvar,Dsout,Dsmap); /*通過Sql語句獲得連續變數的最值,並存儲*/ proc sql noprint; select max(&Xvar) into :Vmax from &Dsin; select min(&Xvar) into :Vmin from &Dsin; run; quit; %let Bs=%sysevalf((&Vmax-&Vmin)/&Nb); /*獲得每個連續變數所在的區間*/ data &Dsout; set &Dsin; %do i=1 %to &Nb; %let Bin_R=%sysevalf(&Vmin+&i*&Bs); %let Bin_L=%sysevalf(&Bin_R-&Bs); %if &i=1 %then %do; if &Xvar>=&Bin_L and &Xvar<=&Bin_R then &XBvar=&i; %end; %if &i>1 %then %do; if &Xvar>&Bin_L and &Xvar<=&Bin_R then &XBvar=&i; %end; %end; run; /*儲存變數分割槽*/ proc sql noprint; create table &Dsmap(Bin_no num,Bin_min num,Bin_max num); %do i=1 %to &Nb; %let Bin_R=%sysevalf(&Vmin+&i*&Bs); %let Bin_L=%sysevalf(&Bin_R-&Bs); insert into &Dsmap values(&i,&Bin_L,&Bin_R); %end; run; quit; %mend;
</pre><pre class="html" name="code">/*呼叫巨集*/ %EqwBin(Ccmodel.Creditcard,CustAge,5,CustAge_b,Ccmodel.CC1,Ccmodel.Age_Map); %EqwBin(Ccmodel.CC1,TmAtAddress,5,TmAtAddress_b,Ccmodel.CC2,Ccmodel.TmAtAddress_Map); %EqwBin(Ccmodel.CC2,CustIncome,5,CustIncome_b,Ccmodel.CC3,Ccmodel.CustIncome_Map); %EqwBin(Ccmodel.CC3,TmWBank,5,TmWBank_b,Ccmodel.CC4,Ccmodel.TmWBank_Map); %EqwBin(Ccmodel.CC4,AmBalance,5,AmBalance_b,Ccmodel.CC5,Ccmodel.AmBalance_Map); %EqwBin(Ccmodel.CC5,UtliRate,5,UtliRate_b,Ccmodel.CC6,Ccmodel.UtliRate_Map); run;
- quit與run:
SAS的過程從壽命來分有兩大類,一大類是過程執行完後自動退出,大多數的SAS過程都是這樣,過程直接加Run就可以了;另一大類是互動性質的過程,過程啟動後不會主動退出,可以後續接著執行這個過程的一些其它命令,最後需要用Qiut命令退出這個過程,如:Proc SQL,Proc IML等。本文來自: 人大經濟論壇 SAS專版 版,詳細出處參考:http://bbs.pinggu.org/forum.php?mod=viewthread&tid=1189280&page=1