邏輯回歸評分卡100問——基於申請評分卡

小肥羊的博客 2021-08-16 00:12:15 阅读数:45

本文一共[544]字,预计阅读时长:1分钟~

Q001、邏輯回歸與線性回歸的區別?

在國內的大多數金融機構內,已經很少看到使用線性回歸模型來做評分卡的了。目前用的最多的還是以邏輯回歸模型,當然,基於機器學習的評分模型也越來越得到市場的認可。

線性回歸的一般錶示方法如下:

\[p(x_i)=\beta x_i^T=\beta_0 + \beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_nx_{in} \]

其中,\(p(x_i)\)錶示在第\(i\)個樣本違約的概率。

因為概率值介於0-1之間,很明顯線性回歸不滿足這個要求。

關於邏輯回歸的敘述,見我的另一篇文章《邏輯回歸——牛頓法矩陣實現方式》,文中順便給出了梯度下降求解的方法。

Q002、邏輯回歸的目標函數是什麼?

Q003、邏輯回歸對不平衡樣本是否敏感?

Q004、有哪些最優分箱的方法?

Q005、邏輯回歸的結果如何檢驗?

Q006、為什麼需要進行WOE轉換?

對於建模樣本中某個特征X,假設經過WOE轉換後,共計有K個分箱。即

\[W_i = ln[(N_i/\sum_{i=1}^k N_i)/(P_i/\sum_{i=1}^k P_i)] \]

現在對WoE進行改寫,

\[\begin{aligned} W_i&=ln(\frac{N_i}{\sum N_i}/\frac{P_i}{\sum P_i}) \\&=ln(\frac{N_i \times (N_i+P_i)}{\sum N_i \times ( N_i+ P_i)}/\frac{P_i \times ( N_i+ P_i)}{\sum P_i \times ( N_i+ P_i)}) \\&=ln[(p_{N_i}\times\frac{ N_i+ P_i}{\sum N_i})/(P_{P_i}\times \frac{ N_i+ P_i}{\sum P_i})] \\&=ln[p_{N_i}/(1-p_{N_i}]-ln(\sum N_i/\sum P_i) \end{aligned} \]

當然,上述變式還有其他方法。根據改變後的WoE,我們可以看到,WoE與邏輯函數之間是線性關系,這就說明,經過WoE轉換後的特征,特別適合用於邏輯回歸模型

另外需要說明的是,在建模樣本與總體樣本分布一致的情况下,根據建模樣本或者總體樣本計算的WoE幾乎沒有差別。

假設好樣本是原來的10倍,壞樣本樣本量不變,則

\[\begin{aligned} W_i&=ln[p_{N_i^{'}}/(1-p_{N_i^{'}}]-ln(\sum N_i^{'}/\sum P_i^{'}) \\&=ln(10\times N_i/P_i)-ln(10\times \sum N_i/\sum P_i) \\&=ln[p_{N_i}/(1-p_{N_i}]-ln(\sum N_i/\sum P_i) \end{aligned} \]

但是,當某個特征在建模樣本和全樣本上分布差异比較大的時候,根據建模樣本計算出來的WoE對於總體樣本的代錶性較差,此處建議根據全樣本計算WoE,然後代入模型計算。

Q007、有哪些通用的數據預處理方案?

Q008、如何進行概率轉評分?

邏輯回歸的結果是一個類似於概率的比特於(0,1)之間的實數,在實踐中,我們需要將概率轉化為分數。那麼,到底有哪些評分轉換的方式呢?

考慮下面一個簡單的邏輯回歸評分卡:

variable name value coef woe
const. - -1.034 -
gender male 0.45 0.32
gender famale 0.45 -0.45
edu_level 高中及以下 0.86 0.54
edu_level 大專 0.86 0.05
edu_level 本科及以上 0.86 -0.61
income (0,3000) 1.02 0.67
income [3000,7000) 1.02 0.10
income [7000,12000) 1.02 -0.13
income [12000,+) 1.02 -0.44

對如下幾個樣本計算得分:

No. gender edu_level income constant
1 - 0.45 0.05 0.67 1
2 - 0.45 0.54 0.10 1
3 0.32 0.05 -0.13 1
4 0.32 -0.61 -0.44 1

一、直接進行線性轉換

將邏輯回歸的結果乘以一個固定的系數,如期望的分數區間落於(300-800)之間,並且分數越高,客戶資質越好,則對應的轉換公式為:

\[Score = 800 - 500\times p \]

各樣本得分如下錶:

No. gender edu_level income constant Pr score
1 - 0.45 0.05 0.67 1 0.3752 612
2 - 0.45 0.54 0.10 1 0.3385 631
3 0.32 0.05 -0.13 1 0.2730 664
4 0.32 -0.61 -0.44 1 0.1343 733

二、指定違約概率的轉換

在實際業務中,我們希望客戶的評分呈現正態分布,而邏輯回歸的結果,是個概率值,根據邏輯函數的圖像可知,概率值不可能是正態的。

另一方面,我們總是希望評分是可加的,即總分是由各個分項的子分相加得來的,概率值顯然不具有這樣的特性。

此外,我們還希望評分具有穩定性,即某個分數段對應的違約率應該是固定的,這樣有利於風控策略的制定。同時,還要求分數每下降固定數值,違約率呈現指數遞增的趨勢。

也就是說,最好是評分與\(ln(odds)\)具有線性關系。

即:

\[Score = A+Bln(odds) \]

現在我們做出如下假設:

(1)500分對應好壞比為10:1

(2)評分每增加50分,好壞比增加一倍,即令PDO=50

分別將500分和550分代入上式

\[\begin{aligned} 500 &= A+ Bln(10) \\ 550 &= A +Bln(20) \end{aligned} \]

解得:

\[\begin{aligned} B&=\frac{50}{ln(2)}=72.13\\ A&=500-Bln(10)=333.9\\ \end{aligned} \]

可得評分計算公式:

\[Score =333.90+72.13ln(odds) \]

由於這裏我們約定Pr是壞客戶的概率,即:

\[ln(odds)=ln(\frac{Pr(G|X)}{Pr(B|X)})=ln(\frac{1-p}{p})=-ln(\frac{p}{1-p})=-(\beta_0+\beta_1x_1+\cdots+\beta_nx_n) \]

代入上述評分轉換公式:

\[\begin{aligned} Score&=333.90-72.13\times(\beta_0+\beta_1x_1+\cdots+\beta_nx_n)\\ &=333.90-72.13\beta_0+72.13\times(-\beta_1x_1-\beta_2x_2-\cdots-\beta_nx_n) \end{aligned} \]

可以得到如下評分卡:

variable name value coef woe A B Score_Ori Score_Adj
const. - -1.034 - 333.90 72.13 408 0
gender male 0.45 0.32 333.90 72.13 -10 126
gender famale 0.45 -0.45 333.90 72.13 15 151
edu_level 高中及以下 0.86 0.54 333.90 72.13 -33 103
edu_level 大專 0.86 0.05 333.90 72.13 -3 133
edu_level 本科及以上 0.86 -0.61 333.90 72.13 38 174
income (0,3000) 1.02 0.67 333.90 72.13 -49 87
income [3000,7000) 1.02 0.10 333.90 72.13 -7 129
income [7000,12000) 1.02 -0.13 333.90 72.13 10 146
income [12000,+) 1.02 -0.44 333.90 72.13 32 169

上述幾個樣本的得分如下:

No. gender edu_level income constant Pr score
1 - 0.45 0.05 0.67 1 0.3752 371
2 - 0.45 0.54 0.10 1 0.3385 383
3 0.32 0.05 -0.13 1 0.2730 405
4 0.32 -0.61 -0.44 1 0.1343 469

錶格中,Score_Ori是計算出的原始分數,可以看出分數有正有負。一個比較合理的調整方案是,將常數項的分數,平均分配到每個得分中。這裏一共有3個變量,則將408均分到三個變量上,使每個變量都變成正數。

全為正數的得分更加符合人的邏輯,同時也方便部署。

三、指定分數區間的轉換

第二種轉換方式,得到的評分區間不總是固定的,如果想要評分固定在某個區間內,則可以稍作調整。

已知變量取值經過WoE轉換以後,值是有限的,因此,得到的評分,也一定是有限的。我們假設評分介於300-850之間,即

\[\begin{aligned} Score_{min}=A+B\times min(ln(odds))=300\\ Score_{max}=A+B\times max(ln(odds))=850 \end{aligned} \]

根據上一節可知:

\[ln(odds)=-(\beta_0+\beta_1x_1+\cdots+\beta_nx_n) \]

則:

\[\begin{aligned} min(ln(odds))&=min(-(\beta_0+\beta_1x_1+\cdots+\beta_nx_n))\\ &=-(-1.034+0.32\times0.45+0.54\times0.86+0.67\times1.02)\\ &=-0.2578 \end{aligned} \]

同理,

\[\begin{aligned} max(ln(odds))&=max(-(\beta_0+\beta_1x_1+\cdots+\beta_nx_n))\\ &=2.2099 \end{aligned} \]

代入評分轉換公式:

\[\begin{aligned} Score_{min}&=A+B\times (-0.2578))=300\\ Score_{max}&=A+B\times 2.2099=850 \end{aligned} \]

解得:

\[\begin{aligned} A&=357.46\\ B&=222.88\\ Score&=357.46+222.88ln(odds)\\ &=357.46-222.88\times(\beta_0+\beta_1x_1+\cdots+\beta_nx_n) \end{aligned} \]

可以得到如下評分卡:

variable name value coef woe A B Score_Ori Score_Adj
const. - -1.034 - 347.46 222.88 588 0
gender male 0.45 0.32 347.46 222.88 -32 164
gender famale 0.45 -0.45 347.46 222.88 46 242
edu_level 高中及以下 0.86 0.54 347.46 222.88 -105 91
edu_level 大專 0.86 0.05 347.46 222.88 -10 186
edu_level 本科及以上 0.86 -0.61 347.46 222.88 120 316
income (0,3000) 1.02 0.67 347.46 222.88 -156 40
income [3000,7000) 1.02 0.10 347.46 222.88 -23 173
income [7000,12000) 1.02 -0.13 347.46 222.88 31 227
income [12000,+) 1.02 -0.44 347.46 222.88 104 300

上述幾個樣本的得分如下:

No. gender edu_level income constant Pr score
1 - 0.45 0.05 0.67 1 0.3752 471
2 - 0.45 0.54 0.10 1 0.3385 507
3 0.32 0.05 -0.13 1 0.2730 578
4 0.32 -0.61 -0.44 1 0.1343 778

四、總結

上述三種方法,均是比較常用的評分轉換方式。其中,方法二和方法三比較常用於信用分的轉換,方法一常用於欺詐分的轉換。上述幾個方法各有優劣,主要錶現為:

(1)方法一直接使用概率的線性轉換,簡單明了,但是轉換後的分數不符合正態分布,會在高分段大規模集中,不符合業務上的直覺。

(2)方法二是目前最常用的轉換方式,對於采用同一基准和PDO的分數,可以直接進行對比。但是方法二無法保證評分落在某個固定區間。

(3)方法三保證了評分介於一個固定的區間,但是模型迭代以後,相同評分對應的違約率不同,相應的策略可能需要調整。

值得說明的是,上述三種方法,評分的排序是一致的,即評分在總體中的比特置是不變的。

綜上,本文建議使用方法二。

Q009、如何評價評分卡好壞?

All models are wrong, but some are useful.
——George E. P. Box

正如英國統計學家George E. P. Box所言,所有的模型都是錯誤的,但有一些很有用。這句話,用在信用評分領域最好不過了。對於信用評分的開發者來說,我們的目的不是找一個預測率百分比的模型,當然,這樣的模型也找不到。而是找一個有用的模型,能够有效的區分出高風險客群和低風險客群。銀行等金融機構就是經營風險的,在平衡風險的過程中獲利。

那麼,什麼樣的模型才是有用的模型呢?

在實踐中,我們經常使用KS統計量來衡量模型的區分度,並且總是以自己的KS高於競爭對手而感到自豪。KS統計量是基於經驗累積概率分布函數計算出來的,在同一個圖中,繪制出好客戶和壞客戶的經驗累積概率分布函數,兩條曲線之間的最大差值,即是KS統計量。

上述為某機構申請評分模型的全樣本KS錶現,在580-600這個分數區間內,KS達到最大值60%。在實踐中,很多同學對於KS抱有疑問,主要錶現為以下幾點:

(1)cut-off是否應該切在KS所在區間?

(2)KS是否越大越好?

下面,我們一個一個來解答。

對於問題一,KS是用來衡量模型的最大區分能力,而具體cut-off的確定,還需要策略的同學進行分析後確定。在進行cut-off確定的時候,我們要同時考慮核准率和不良率,並且輔之以提昇度進行分析確定。

評分 全樣本 累積全樣本 累積好 累積壞 好占比 壞占比 好累積 壞累積 KS Bad_Rate ln(odds) Bad_Rate2 Bad_Rate3 Lift 核准率
[300, 320) 18 6 12 18 6 12 0.01% 0.40% 0.01% 0.40% 0.40% 66.67% -0.69 66.67% 2.92% 22.73 99.98%
[320, 340) 52 23 29 70 29 41 0.02% 0.97% 0.03% 1.38% 1.35% 55.77% -0.23 58.57% 2.89% 19.97 99.93%
[340, 360) 76 32 44 146 61 85 0.03% 1.48% 0.06% 2.85% 2.79% 57.89% -0.32 58.22% 2.85% 19.85 99.86%
[360, 380) 144 61 83 290 122 168 0.06% 2.79% 0.12% 5.64% 5.52% 57.64% -0.31 57.93% 2.78% 19.75 99.71%
[380, 400) 200 108 92 490 230 260 0.11% 3.09% 0.23% 8.73% 8.50% 46.00% 0.16 53.06% 2.69% 18.09 99.52%
[400, 420) 346 212 134 836 442 394 0.22% 4.50% 0.45% 13.23% 12.78% 38.73% 0.46 47.13% 2.57% 16.07 99.18%
[420, 440) 513 342 171 1349 784 565 0.35% 5.74% 0.80% 18.97% 18.18% 33.33% 0.69 41.88% 2.41% 14.28 98.67%
[440, 460) 786 594 192 2135 1378 757 0.60% 6.45% 1.40% 25.42% 24.02% 24.43% 1.13 35.46% 2.23% 12.09 97.90%
[460, 480) 1086 849 237 3221 2227 994 0.86% 7.96% 2.26% 33.38% 31.12% 21.82% 1.28 30.86% 2.02% 10.52 96.83%
[480, 500) 1472 1236 236 4693 3463 1230 1.25% 7.92% 3.51% 41.30% 37.79% 16.03% 1.66 26.21% 1.80% 8.94 95.38%
[500, 520) 2104 1842 262 6797 5305 1492 1.87% 8.80% 5.38% 50.10% 44.72% 12.45% 1.95 21.95% 1.57% 7.48 93.31%
[520, 540) 2807 2547 260 9604 7852 1752 2.58% 8.73% 7.97% 58.83% 50.86% 9.26% 2.28 18.24% 1.33% 6.22 90.54%
[540, 560) 3621 3370 251 13225 11222 2003 3.42% 8.43% 11.39% 67.26% 55.87% 6.93% 2.60 15.15% 1.10% 5.16 86.98%
[560, 580) 4535 4300 235 17760 15522 2238 4.36% 7.89% 15.75% 75.15% 59.40% 5.18% 2.91 12.60% 0.88% 4.30 82.51%
[580, 600) 5482 5297 185 23242 20819 2423 5.37% 6.21% 21.12% 81.36% 60.24% 3.37% 3.35 10.43% 0.71% 3.55 77.11%
[600, 620) 6319 6172 147 29561 26991 2570 6.26% 4.94% 27.38% 86.30% 58.92% 2.33% 3.74 8.69% 0.57% 2.96 70.89%
[620, 640) 7150 7021 129 36711 34012 2699 7.12% 4.33% 34.51% 90.63% 56.12% 1.80% 4.00 7.35% 0.43% 2.51 63.85%
[640, 660) 7740 7657 83 44451 41669 2782 7.77% 2.79% 42.28% 93.42% 51.14% 1.07% 4.52 6.26% 0.34% 2.13 56.22%
[660, 680) 8112 8044 68 52563 49713 2850 8.16% 2.28% 50.44% 95.70% 45.26% 0.84% 4.77 5.42% 0.26% 1.85 48.23%
[680, 700) 8043 7999 44 60606 57712 2894 8.12% 1.48% 58.55% 97.18% 38.63% 0.55% 5.20 4.78% 0.21% 1.63 40.31%
[700, 720) 7469 7435 34 68075 65147 2928 7.54% 1.14% 66.10% 98.32% 32.22% 0.46% 5.39 4.30% 0.15% 1.47 32.96%
[720, 740) 7048 7035 13 75123 72182 2941 7.14% 0.44% 73.23% 98.76% 25.52% 0.18% 6.29 3.91% 0.14% 1.33 26.02%
[740, 760) 6269 6256 13 81392 78438 2954 6.35% 0.44% 79.58% 99.19% 19.61% 0.21% 6.18 3.63% 0.12% 1.24 19.84%
[760, 780) 5382 5370 12 86774 83808 2966 5.45% 0.40% 85.03% 99.60% 14.57% 0.22% 6.10 3.42% 0.08% 1.17 14.54%
[780, 800) 4491 4487 4 91265 88295 2970 4.55% 0.13% 89.58% 99.73% 10.15% 0.09% 7.02 3.25% 0.08% 1.11 10.12%
[800, 820) 3579 3576 3 94844 91871 2973 3.63% 0.10% 93.21% 99.83% 6.62% 0.08% 7.08 3.13% 0.07% 1.07 6.60%
[820, 840) 2640 2639 1 97484 94510 2974 2.68% 0.03% 95.89% 99.87% 3.98% 0.04% 7.88 3.05% 0.10% 1.04 4.00%
[840, 860) 1870 1868 2 99354 96378 2976 1.90% 0.07% 97.78% 99.93% 2.15% 0.11% 6.84 3.00% 0.09% 1.02 2.15%
[860, 880) 1295 1294 1 100649 97672 2977 1.31% 0.03% 99.10% 99.97% 0.87% 0.08% 7.17 2.96% 0.11% 1.01 0.88%
[880, 900) 892 891 1 101541 98563 2978 0.90% 0.03% 100.00% 100.00% 0.00% 0.11% 6.79 2.93% 0.00% 1.00 0.00%
合計 101541 98563 2978 101541 98563 2978 100% 100% - - 60% 2.93% 3.50 - - -

上錶為各個分數區間的指標統計。如果在KS最大處拒絕,此時的核准率為77.11%,拒絕樣本違約率為10.43%,通過樣本的違約率為0.71%。相比於不使用評分卡時的違約率2.93%,使用評分卡後違約率大幅降低。

但是需要注意的是,金融機構的最終目標是收益,如果不良率在可控範圍內,可以適當提高風險容忍度。比如此時把540分以下的拒絕,此時的核准率為90.54%,那麼拒絕樣本的違約率為18.24%,通過樣本的違約率為1.33%。相對於不使用評分卡,違約率降低了一半以上,而通過客戶數卻沒有顯著的損耗。

我們還可以根據提昇度進行cut-off切分,比如Lift大於6的客群,全部拒絕,此時拒絕線在540分;Lift介於2-6之間的轉人工或者走其他通道複核,那麼540-660分之間的客戶可以這樣處理;對於Lift小於2的客群,可以直接通過,此時區間內的違約率已經降至1%以內,遠低於2.93%的平均違約率。

單從風險的角度進行切分是不全面的,必要的時候,還可以結合收益測算,劃分最佳切分點。

針對問題二,在一定範圍內,KS越大越好,但是一般KS不宜超過70%。否則一方面模型可能有點問題,另一方面,不利於cut-off的確定。

下面,我們繪制出好客戶和壞客戶的概率密度函數。

從上圖可以看出,此評分不僅具有較高的KS,而且好壞樣本十分接近正態分布,從統計的角度而言,該模型錶現優异。

圖中KS曲線的極值點落在好壞客戶的概率密度曲線交叉的地方。在極值點左邊,壞客戶的概率密度總是高於好客戶的,因此KS曲線不斷上昇。在極值點右邊,壞客戶的概率密度低於好客戶,KS逐漸下降。因此,如果要KS達到較大的值,需要將兩個概率密度曲線的交點向下壓。這就意味著,好壞客戶的分布,偏度會增大,而不是接近於正態分布了。

Q010、IV值可以怎麼理解?

Q011、邏輯回歸的系數怎麼檢驗?

Q012、評分卡對回歸系數有要求嗎?

一、回歸系數應通過\(Wald\)檢驗

二、除常數項外,回歸系數同號

三、回歸系數絕對值不應太小

Q013、什麼是邏輯回歸的正則化?

Q014、邏輯回歸評分卡的穩定性如何評估?

版权声明:本文为[小肥羊的博客]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/08/20210816001143711s.html