风控建模中的样本偏差与拒绝推断
風控業務背景
幸存者偏差(Survivorship Bias)是一個廣泛存在的邏輯謬誤。我們在進行統計的時候,可能會忽略樣本的隨機性和全面性,用局部樣本代替了總體樣本,對總體的描述出現偏差,從而得出錯誤的結論。
在風控建模中,樣本偏差(Sample Bias)問題同樣存在,這會導致模型參數估計不準確,從而影響對真實風險的判斷。為了解決這一問題,拒絕推斷(Reject Inference)應運而生。
本文嘗試從樣本偏差原因分析、拒絕推斷概念、經典方法實施步驟、數學原理等維度系統論述。
目錄Part 1. 風控建模中的樣本偏差
Part 2. 是否需要做拒絕推斷?
Part 3. 拒絕推斷的分類體系
Part 4. 拒絕推斷經典方法:數據
Part 5. 拒絕推斷經典方法:推斷
Part 6. 如何驗證拒絕推斷的效果?
Part 7. 總結
致謝
版權聲明
參考資料
Part 1. 風控建模中的樣本偏差
在整個信貸全鏈路中,風控系統猶如一把篩子逐層過濾得到相對優質客戶,最終決定是否放貸,如圖1所示。其中,信貸審批過程一般包括反欺詐策略、政策性規則、信用審批策略、人工信用審核等環節。對于100%的全量申請訂單,實際放貸訂單可能只占10%,甚至更低,實際取決于各家放貸機構的風控策略。
圖 1 - 信貸風控系統全鏈路
如圖1所示,風控模型可能是基于只占全量申請用戶的10%的放貸樣本建立的。更嚴謹而言,只是放貸樣本中的好壞樣本(Known Good / Bad),需剔除不定(Indeterminate)和排斥樣本(Exclusion)。
然而,模型最終上線可能會應用到不同環節,如額度層、定價層、支用層。不同環節的風控模型的定位一般都是違約概率(Probability of Default,PD)預測模型。那么差異是什么?由于不同階段可用數據源、計算實時性要求、目標變量等因素的不同,導致模型設計上不盡相同。同時,額度階段是在用戶維度預測,而定價和申請階段是在訂單維度預測。
如果我們只用放貸樣本建模,就會讓模型出現估計偏差(bias)。例如,我們通常會拒絕多頭借貸嚴重的客戶,這就導致放貸樣本中大多是多頭借貸較少的客戶。此時,我們利用放貸樣本構建的模型在應用到全量申請樣本上時,會導致什么后果呢?
由于存在“部分樣本估計總體”的問題,對全量申請用戶的風險估計就會不準確,通常會偏于樂觀(風險概率預測偏低)。隨著時間推移,訓練的模型將越來越偏離實際情況,甚至通過了大量應該被拒絕的壞用戶,致使出現大量壞賬。為了降低壞賬率,風控策略將進一步收緊,這又會導致放貸率難以提升。于是,風控系統就陷入了惡性循環??。
圖 2 - 模型偏差導致的惡性循環
此時我們該采取什么辦法來解決這一問題?這就引出了拒絕推斷(Reject Inference)的范疇,其面向解決的問題是:
假設拒絕訂單被放貸,那么這筆訂單的貸后表現是good,還是bad?我們進而將拒絕推斷的好壞樣本(Inferred Good / Bad)加入至建模樣本中,用以豐富建模樣本的多樣性,從而縮小訓練樣本與總體之間的差異,如圖3所示。
圖 3 - 加入拒絕推斷的評分卡開發流程
Part 2. 是否需要做拒絕推斷
拒絕推斷只是一個錦上添花的工作,由于只是推斷(infer)并非真實(real),對模型帶來的影響并不一定是正向的。因此,建議優先保證基于放貸樣本構建的模型具有良好的排序性,再考慮拒絕推斷進行優化。
在某些情況下,可能也并不需要開展拒絕推斷。我們可以結合放貸率來進行定性分析,一般適用于放貸率適中的場景里。
- 如果放貸率很高(如90%+),這時就沒必要做拒絕推斷,樣本偏差問題已經不明顯。
- 如果放貸率很低(如5%左右),那么由于拒絕推斷與真實貸后表現之間存在較大的差異,可能導致模型性能反而下降。
注意,這里的放貸率閾值僅供參考,實踐中將根據業務實際情況而定。
在《利用Swap Set分析風控模型更替的影響》一文中,我們也曾提到過拒絕推斷的場景:對于舊模型拒絕的客戶,我們需要推斷其好壞(貸后逾期表現)。
Part 3. 拒絕推斷方法的分類體系
經典的拒絕推斷方法從廣義上可分為兩大類:數據法(Data methods)和推斷法(Inference methods)。
??數據法:獲取拒絕樣本的其他表現數據。
方法一:接受本該拒絕(Reject Acceptance)方法二:同生表現(Cohort Performance),又稱為重新分類法(Reclassification)
方法三:拒絕原因(Reject Reason)
??推斷法:推斷拒絕和放貸樣本之間的差異,進而調整建模樣本組成來構建模型。
方法一:展開法(Augmentation),又稱為重新加權法(Reweighting)方法二:重新加權法(Reweighting)
方法三:打包法(Parcelling),又稱為外推法(Extrapolation)
方法四:迭代再分類法(Iterative Reclassification)
方法五:兩階段法(Two-stage),又稱為雙變量推斷(Bivariate Inference)
Part 4. 拒絕推斷經典方法:Data methods
方法一:接受本該拒絕(Reject Acceptance)
其思想是將部分本該被信用策略拒絕的訂單,人工否決予以通過(可參考《信貸風控審批中的決策否決管理》)。當然,這批訂單將會被打上標記,作為實驗對象,保持觀察貸后還款表現。這就相當于在正常放貸訂單中安插入我們的間諜(spy) 。
考慮到壞賬損失,我們一般也會事先上線一個用來兜底的風控模型,對拒絕訂單進行預篩選,并不是隨機通過。
該方法的優點在于拒絕訂單與正常放貸訂單的好壞定義將保持一致。但缺點也顯而易見:
第一點,需承擔壞賬損失
如果信用評分模型對某筆訂單給出了拒絕的建議,意味著這筆訂單大概率會壞賬。因此,否決信用評分模型決策,接受本該拒絕的訂單,這會引入壞賬損失。
假設接受2000筆本該拒絕的訂單,其中1500筆實際貸后表現為good,500筆為bad。一筆good的訂單可能帶來收益是200元,而一筆bad的訂單帶來的損失是2000元。那么帶來的期望損失將會是:??元。
但是,長遠來看這是能提升模型并帶來經濟收益。因此,短期壞賬損失與長期風控優化之間需要做權衡。
第二點,需提前規劃調整?
如果是開發中長期PD模型,例如將bad定義為S6D30(前六期任意一期發生至少30天逾期),那么風控策略至少得提前7個月進行調整,才能讓這批樣本徹底進入表現期。
但現實中可能沒有這種預見性。因此,當出現這種情況:只提前4個月才開始調整,目前還沒有進入S6D30的表現期,那該怎么辦?
一種解決方案是:可利用歷史滾動率,預估從S3D30(前三期任意一期發生至少30天逾期)到S6D30的轉化。
方法二:同生表現(Cohort Performance),又稱為重新分類法(Reclassification)
該方法的思想是利用其他產品或貸款機構的表現數據來標注。操作步驟如下:
- step 1.?獲取內外部數據:如果內部存在多個產品線,可以考慮其他產品上的貸后表現數據來代替;也可以利用外部征信數據,包括央行征信報告、芝麻分、第三方多頭借貸數據、其他貸款機構貸后表現等。
- step 2.?數據清洗規整:數據質量檢查、口徑邏輯確認等。
- step 3.?拒絕用戶標注:限定用戶在本平臺申請前后一段時間內(時效性),綜合其他平臺上用戶信用記錄,對用戶進行好壞標注。
雖然感覺步驟描述非常簡單,但在實踐中,你就會發現存在幾個棘手的問題 :
Q1. 外部數據的獲取和成本問題?。
- 央行征信報告一般不對網貸平臺開放調用,只能在銀行體系使用;
- 芝麻分已經中止與部分網貸平臺合作,只能在阿里內部使用(摘自《支付寶公告:芝麻信用分停止授權24家網貸平臺》);
- 其他網貸平臺逾期記錄數據可能不愿意同步給第三方,原因有三:一是合規性要求;二是這樣相當于提供來黑名單,可直接用來風控;三是該數據可能涉及公司內部信息。
Q2. 多源數據格式不統一問題。
- 不同數據源的口徑邏輯、格式不一致,需要確認和清洗后方可使用。
Q3. bad標注相對容易,good定義不明確。
- 只要至少有N筆逾期記錄,我們就可以將用戶定義為bad。如何確定閾值N? 需要與放貸樣本中的bad來佐證分析,以保證內外部bad定義盡可能一致。例如,取1k條放貸樣本的bad,統計外部數據中對這批用戶的逾期記錄數分布,從而確定閾值N。
- 另一方面,哪怕幾家外部征信數據都顯示用戶無逾期記錄,我們也沒有足夠的信心將其標記為good。這可能只是數據獲取不全而已,或者是白戶。
Q4. 不同平臺數據對bad的定義之間存在差異。
- 央行征信報告數據:征信花/黑是相對嚴重的bad定義,同時存在大量白戶。
- 其他網貸平臺逾期數據:由于不同網貸平臺的產品利率、期限、催收力度等存在差異,造成逾期原因可能相差甚遠。
- 外部數據的bad定義很難與內部的建模目標(如是否發生M3逾期)一致,這時可能引入噪聲(也就是多種定義的Y)。
- 那么我們該怎么做? 一種解決方案:基于內外部數據在不同好壞定義下對同一批放貸樣本交叉對比分析一致性。若一致性足夠高(比如95%以上),那么就表明該外部數據可用。
圖 4 - 內外部數據拒絕標注一致性分析矩陣
Q5. 建模樣本是訂單維度,外部拒絕標注是用戶維度。
- 一個用戶可能關聯多筆訂單,但不同訂單的貸后表現存在差異。因此,風控建模一般將樣本定義在訂單維度,而非用戶維度。
- 對于不同利率、期限、催收力度的多個產品的借款訂單,借款人所表現出來的還款意愿存在差異。用戶維度的bad,不代表在某個產品上的某筆訂單的bad。
方法三:拒絕原因(Reject Reason)
在圖1所示的信貸審批鏈路中,我們會記錄每個環節的拒絕原因,尤其是人工信審部分。因此,我們可利用這些數據進行bad樣本標注。
Part 5.?拒絕推斷經典方法:Inference methods
為便于介紹Inference methods部分,統一約定以下符號:
變量部分:
- ?= 目標變量,??= 特征向量
- :違約概率分數,簡寫為?
- :正常概率分數,簡寫為?
- :放貸概率分數,簡寫為?
- ?:拒絕概率分數,簡寫為??模型。
圖 5 - 硬截斷法(Hard Cutoff)
模糊展開法的操作步驟為:
- step 1?模型。
圖 6 - 模糊展開法(Fuzzy Augmentation)
方法二:重新加權法(Reweighting)
重新加權法并沒有把拒絕樣本加入建模,只是調整了放貸好壞樣本的權重。操作步驟為:
圖 7 - 重新加權法(Reweighting)
如圖7所示,假設第5個分數段中有10個好樣本和6個壞樣本,那么每個好壞樣本都被賦予230/16=14.4的權重,以此模擬出這個分數段有144個好人和86個壞人。
顯然,該方法的假設是:在同一個分數段里,拒絕和放貸樣本的好壞表現是相近的。
方法三:打包法(Parcelling),又稱為外推法(Extrapolation)。
該方法的操作步驟如下:
- step 1. 構建
圖 8 - 打包法(Parceling)
如圖8所示,在第一個分箱中,放貸樣本的?
圖 9 - 迭代再分類法 (Iterative Reclassification)
方法五:兩階段法(Two-stage),又稱為雙變量推斷(Bivariate Inference)
實際信貸業務邏輯是:先有放款決策,才有好壞表現。因此,建模過程也考慮分為放款預測(AR模型)和好壞預測(KGB模型)兩個階段。用數學描述:
圖 10 - 兩階段法(Two-stage)
我們先觀察圖10中的曲線變化趨勢,再分析原因:
?
當?Part 6. 如何驗證拒絕推斷的效果?
在掌握了上述拒絕推斷操作方法后,我們可能還是最關心:如何驗證效果?
1. 壞賬率比較(Bad Rate)
根據業務經驗初步判斷合理性,拒絕推斷壞好比與放貸已知壞好比的倍數,通常在2到4之間。
2. 單變量分析(Univariate Analysis)
對入模變量分析WOE分箱的變化,主要檢驗邏輯的合理性。同時一般拒絕推斷后IV將提升。
圖 11 - 拒絕推斷前后單變量IV的變化
3. 模型上線觀察(AB Test)
所有的推斷終歸不是真實,實際上線測試才是檢驗效果的最可靠方法。我們可以設置以下AB測試:
- 部分尾號使???模型,部分尾號使???模型
- 將??設置在相同壞賬率下
線上運行幾個?后進?評估。之前經驗表明,拒絕推斷后可顯著提升放貸率,降低壞賬率。
Part 7. 總結
只根據放貸樣本構建的風控模型往往偏于樂觀,會將風險估計偏低,從而影響額度策略、風險定價、信貸審批等各個環節。針對拒絕推斷這一命題,本文吸取了前人的優秀成果,主要創新點在于:
拒絕推斷的主要意義在于希望修正建模樣本和實際全量樣本之間的差異,本質上是為了降低模型參數估計的偏差。
致謝
感謝參考資料的各位作者帶給我的啟發。本文尚有理解不當之處,歡迎指正。
?
?
總結
以上是生活随笔為你收集整理的风控建模中的样本偏差与拒绝推断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 元计算:IT巨头的金钱收割机,核武器
- 下一篇: 自动化特征工程和自动建模在风控场景的应用