Credit Risk+模型

本文描述的是CreditRisk+模型,該模型是一個信用風險模型崇摄,根據(jù)銀行自身的違約率平均值涨薪,結(jié)合回收率和風險暴露,得到所有債務(wù)人的資產(chǎn)組合的預期違約損失分布袋哼。該分布可以給銀行做參考冀墨,準備相應(yīng)的年度信用準備金。

目錄

1.CreditRisk+模型簡介:主要說明CreditRisk+模型是什么涛贯,該模型需要的假設(shè)以及大概的計算流程诽嘉。
2.計算過程:主要說明Z計分模型里的特征含義,以及Z值的用途弟翘。
3.用到的python庫及其方法:主要說明導入的庫的用途以及使用方法
4.模型演示:給出數(shù)據(jù)虫腋,看一下Python代碼是如何實現(xiàn)的,并分析結(jié)果稀余。
5.總結(jié):總結(jié)該模型的優(yōu)缺點悦冀。

1、CreditRisk+模型簡介

在財產(chǎn)保險精算思想和方法的啟發(fā)下睛琳,瑞士信貸銀行金融產(chǎn)品部開發(fā)出了基于財險精算方法的違約模型盒蟆,記為CreditRisk+模型。
該模型只考慮違約或不違約兩種狀態(tài)师骗,同時假定違約率是隨機的茁影,并以此為前提度量預期損失、未預期損失及其變化丧凤,所以CreditRisk+模型是一個違約模型

模型假設(shè):(1)每筆貸款在給定期間內(nèi)違約率不變募闲;(2)每個借款人的違約率非常小,且違約數(shù)相互獨立愿待。所以違約事件發(fā)生的概率分布服從泊松分布浩螺。

定義:CreditRisk+模型僅僅考慮了違約風險靴患,而沒有考慮信用等級降級風險,屬于信用違約風險度量模型要出。利用CreditRisk+模型可以得到貸款組合損失的概率分布鸳君。

流程:先用貸款組合中最大一筆風險暴露值與風險暴露頻段值L相除并四舍五入為整數(shù)得到風險暴露頻段總級數(shù)m;然后將每筆貸款的風險暴露數(shù)除以L四舍五入為整數(shù)將其歸類到該整數(shù)對應(yīng)的頻段級患蹂,即將所有貸款分類在m個頻段級里或颊;再計算每個頻段級的貸款違約數(shù)量的概率分布和違約損失的概率分布(貸款違約數(shù)服從泊松分布,違約損失=違約數(shù)量*平均風險暴露)传于;最后計算貸款組合的違約損失的概率分布(相同的組合損失金額可能對應(yīng)多種損失組合囱挑,所以要加總概率)

2、計算過程

2.1沼溜、模型所需特征

輸入:貸款組合的風險暴露平挑,風險暴露頻段值L
中間:風險暴露頻段級數(shù)m,各個頻段級的貸款違約數(shù)量的概率分布和違約損失的概率分布
輸出:貸款組合的違約損失的概率分布

2.2系草、計算過程

所需特征已經(jīng)給出通熄,那么接下來就是說明這些特征的處理或計算的過程了,這些過程主要分三步

2.2.1 第一步:風險暴露頻段分級法

我們以N筆貸款構(gòu)成的組合為例找都,具體介紹頻段分級法:

(1)先根據(jù)所有貸款的風險暴露情況設(shè)定風險暴露頻段值唇辨,記為L,例如可以取L=2萬元作為一個頻段值能耻。

(2)用N筆貸款中最大一筆貸款風險暴露值除以頻段值L助泽,將計算數(shù)值按照四舍五入湊成整數(shù),稱之為風險暴露的頻段總級數(shù)嚎京,設(shè)為m,于是隐解,就得到m個風險暴露頻段級鞍帝,以此為v1、v2煞茫、…帕涌、vm,vi所對應(yīng)的風險暴露量為Li续徽。

(3)將每筆貸款的風險暴露量除以頻段值L蚓曼,再按照四舍五入的規(guī)則將計算數(shù)值湊成整數(shù),然后將該筆貸款歸類到該整數(shù)值歲對應(yīng)的頻段值钦扭,類似地纫版,可將所有貸款歸類。

2.2.2 第二步:各個頻段級的違約概率和損失分布

假設(shè)處于vi頻段級的貸款的平均違約數(shù)為λi客情,同時設(shè)將N筆貸款劃級歸類后處于vi頻段級的貸款數(shù)目為Ni其弊,顯然癞己,N1 + N2 + … + Nm = N于是,可得:

圖2.2.2

其中梭伐,Li = L × i 為vi頻段級對應(yīng)的風險暴露數(shù)痹雅,L為頻段值。于是糊识,我們可以得到處于vi頻段級的違約概率分布及其對應(yīng)的損失分布绩社。

2.2.3 第三步:N筆貸款組合的違約概率和損失分布

求出各個頻段級的貸款違約概率和預期損失后,要加總共m個風險暴露頻段級的損失赂苗,以得到N筆貸款組合的損失分布愉耙。

(1)首先要考慮各種預期損失可能的結(jié)合來計算概率。
假設(shè)N筆貸款中處于vi頻段級的違約數(shù)為ni哑梳,這樣得到一個依次對應(yīng)于m個頻段級的違約組合(n1劲阎,n2,…鸠真,nm)悯仙,于是,根據(jù) Li = L × i 可計算出該違約組合對應(yīng)的風險暴露量為:

圖 2.2.3.1

(2)根據(jù)貸款違約事件的獨立性假設(shè)和泊松分布假設(shè)吠卷,得到對應(yīng)于違約組合(n1锡垄,n2,…祭隔,nm)的N筆貸款組合的違約概率為:

圖 2.2.3.2

(3)我們用G表示滿足的所有不同組合的違約組合(n1货岭,n2,…疾渴,nm)的集合千贯,即:

圖 2.2.3.3

則N筆貸款組合的風險暴露或違約損失=nL的概率及其對應(yīng)的預期損失分別為:

圖 2.2.3.4

其中,n = 1搞坝,2搔谴,…,于是桩撮,通過上式就可以得到N筆貸款組合的違約概率和損失分布敦第。

3、用到的python庫及其方法

這里用到了兩個庫店量,分別是scipy和numpy芜果。

3.1、scipy

scipy庫建立在Numpy庫之上融师,提供了大量科學算法右钾,主要包括這些主題:
*特殊函數(shù)(scipy.special)
*積分(scipy.integrate)
*最優(yōu)化(scipy.optimize)
*插值(scipy.interpolate)
*傅立葉變換(scipy.fftpack)
*信號處理(scipy.signal)
*線性代數(shù)(scipy.linalg)
稀疏特征值(scipy.sparse)
統(tǒng)計(scipy.stats)
多維圖像處理(scipy.ndimage)
文件IO(scipy.io)
CreditRisk+模型引入第三方科學計算庫模塊scipy.stats,使用
poisson(λ)****計算泊松分布
的概率質(zhì)量函數(shù):

用法如下:

importscipy.statsasst
po=st.poisson(1)
[po.pmf(i)foriinrange(5)]#pmf:probabilitymassfunction,概率質(zhì)量函數(shù)

Output:
[0.36787944117144233,
0.36787944117144233,
0.18393972058572114,
0.061313240195240391,
0.015328310048810101]

3.2霹粥、numpy

使用NumPy可以執(zhí)行以下操作:
(1)數(shù)組的算數(shù)和邏輯運算灭将。
(2)傅立葉變換和用于圖形操作的例程。
(3)與線性代數(shù)有關(guān)的操作后控。NumPy擁有線性代數(shù)和隨機數(shù)生成的內(nèi)置函數(shù)庙曙。
這里使用了數(shù)組有關(guān)的操作。

4浩淘、模型演示

考察一家銀行6筆貸款的情況捌朴,如下圖,假設(shè)風險暴露頻段值選定為L = 5萬人民幣张抄,—個信貸組合中一年內(nèi)發(fā)生1個違約事件砂蔽,即 λ = 1

代碼和計算過程一樣分為3個部分:
第一部分為將6筆貸款除以風險暴露頻段值,將貸款分成兩類署惯,輸出字典變量label左驾。
第二部分是計算各個頻段級的違約概率和損失分布,輸出的每一列對應(yīng)每個頻段級的概率分布arr极谊。
第三部分計算更多了诡右,先是計算各個違約損失組合的違約概率,然后整理成一個數(shù)組對象并計算出概率分布轻猖。最后得出未來一年內(nèi)的預期損失期望帆吻,變量為E_loss。

代碼如下咙边,代碼里用到的重要變量都有注釋:

import numpy as np
import scipy.stats as st
money = [5,4,8,9,10,3]
L = 5

labelnum = round(max(money) / L)  # 風險暴露總級數(shù)
label = {}  # 頻段級及對應(yīng)的貸款貸款金額
for i in money:
    for j in range(1, labelnum+1):
        if round(i / L) == j:
            if j not in label.keys():
                label[j] = [i]
            else:
                label[j].append(i)
label

Output:{1: [5, 4, 3], 2: [8, 9, 10]}

—————————————————————————————————

arr = np.zeros((len(label[1])+1,labelnum))# 各個頻段級對應(yīng)的違約數(shù)的概率分布
# λ=1
rv = st.poisson(1)
for i in range(arr.shape[0]):
    for j in range(arr.shape[1]):
        arr[i][j] = round(rv.pmf(i), 4)
arr

Output:array([[ 0.3679,  0.3679],
       [ 0.3679,  0.3679],
       [ 0.1839,  0.1839],
       [ 0.0613,  0.0613]])

—————————————————————————————————

pro = np.zeros((arr.shape[0], arr.shape[0])) # 聯(lián)合違約概率
loss = np.zeros((arr.shape[0], arr.shape[0])) # 違約總損失
for i in range(pro.shape[0]):
    for j in range(pro.shape[1]):
        loss[i, j] = i * L + j * 2* L
        pro[i, j] = round(arr[i, 0] * arr[j, 1], 4)
pro

Output:array([[ 0.1354,  0.1354,  0.0677,  0.0226],
       [ 0.1354,  0.1354,  0.0677,  0.0226],
       [ 0.0677,  0.0677,  0.0338,  0.0113],
       [ 0.0226,  0.0226,  0.0113,  0.0038]])

loss

Output:array([[  0.,  10.,  20.,  30.],
       [  5.,  15.,  25.,  35.],
       [ 10.,  20.,  30.,  40.],
       [ 15.,  25.,  35.,  45.]])

—————————————————————————————————

arr2 = {} # 整理之后的貸款違約損失的概率分布
for i in range(pro.shape[0]):
    for j in range(pro.shape[1]):
        if loss[i, j] not in arr2.keys():
            arr2[loss[i, j]] = pro[i, j]
        else:
            arr2[loss[i, j]] = round((arr2[loss[i, j]] + pro[i, j]), 4)
arr2 = sorted(arr2.items(), key=lambda x: x[0])
arr2 = dict(arr2)
arr2

Output:{0.0: 0.13539999999999999,
 5.0: 0.13539999999999999,
 10.0: 0.2031,
 15.0: 0.158,
 20.0: 0.13539999999999999,
 25.0: 0.090300000000000005,
 30.0: 0.056399999999999999,
 35.0: 0.0339,
 40.0: 0.011299999999999999,
 45.0: 0.0038}

—————————————————————————————————
“”“
繪制圖像
”“”
plt.rcParams['font.sans-serif'] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

x_list = list(range(0,10,1))
height_list = list(accu_pro.values())
rects1 = plt.bar(x=x_list, height=height_list, width=0.5, alpha=0.8, color='red', linewidth=2)
# 設(shè)置x軸坐標點顯示
tick_labels = list(accu_pro.keys())
tick_pos = x_list
plt.xticks(tick_pos, tick_labels)
plt.title("資產(chǎn)組合的預期違約損失分布", size=16)
plt.xlabel("期望損失金額", size=14)
plt.ylabel("不違約概率", size=14)

for a,b in zip(x_list,height_list):
    plt.text(a, b+0.02, '%.4f' % b, ha='center', va= 'bottom',fontsize=10)
    

plt.show()

—————————————————————————————————

accu_pro = {} # 累積概率密度
for j in range(len(arr2)):
    sum = 0
    for i in range(j+1):
        sum = sum + list(arr2.values())[i]
    accu_pro[list(arr2.keys())[j]] = sum 
accu_pro = sorted(accu_pro.items(), key=lambda x: x[0])
accu_pro = dict(accu_pro)
accu_pro

Output:{0.0: 0.13539999999999999,
 5.0: 0.27079999999999999,
 10.0: 0.47389999999999999,
 15.0: 0.63190000000000002,
 20.0: 0.76729999999999998,
 25.0: 0.85760000000000003,
 30.0: 0.91400000000000003,
 35.0: 0.94790000000000008,
 40.0: 0.95920000000000005,
 45.0: 0.96300000000000008}

—————————————————————————————————

E_loss = [i*j for i,j in arr2.items()] # 期望損失
E_loss  

Output:[0.0,
 0.67699999999999994,
 2.0310000000000001,
 2.3700000000000001,
 2.7079999999999997,
 2.2575000000000003,
 1.6919999999999999,
 1.1864999999999999,
 0.45199999999999996,
 0.17100000000000001]

—————————————————————————————————

print(np.mean(E_loss))
print(np.std(E_loss))

Output:1.3545
0.93740327501
累積概率圖

結(jié)果分析:該銀行6筆貸款組成的貸款組合猜煮,未來一年期望的損失金額為1.35萬人民幣,大致可看出未來有95%的把握損失不會超過40萬人民幣败许。

5王带、總結(jié)

credit disk+模型優(yōu)缺點總結(jié)如下:

優(yōu)點:
(1)要求的估計量和輸入數(shù)據(jù)較少,僅需要債務(wù)工具的違約和風險暴露的數(shù)據(jù)市殷,模型應(yīng)用比較簡單
(2)不需要對違約原因做任何假設(shè)
(3)將違約率視為連續(xù)隨機變量愕撰,并將違約率的波動率納入模型體現(xiàn)違約率本身的不確定性這一特征。通過使用違約波動率參數(shù)被丧,模型得到簡化,而且不用考慮違約相關(guān)性特征

缺點:
(1)忽略了信用等級變化绪妹,因而貸款信用風險在計算期間內(nèi)固定不變甥桂,與實際情況不符合
(2)分組時,對每筆貸款暴露近似到組邮旷,從而將高估投資組合的方差
(3)忽略了市場風險

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末黄选,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌办陷,老刑警劉巖貌夕,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異民镜,居然都是意外死亡啡专,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門制圈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來们童,“玉大人,你說我怎么就攤上這事鲸鹦』劭猓” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵馋嗜,是天一觀的道長齐板。 經(jīng)常有香客問我,道長葛菇,這世上最難降的妖魔是什么甘磨? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮熟呛,結(jié)果婚禮上宽档,老公的妹妹穿的比我還像新娘。我一直安慰自己庵朝,他們只是感情好吗冤,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著九府,像睡著了一般椎瘟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侄旬,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天肺蔚,我揣著相機與錄音,去河邊找鬼儡羔。 笑死宣羊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的汰蜘。 我是一名探鬼主播仇冯,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼族操!你這毒婦竟也來了苛坚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泼舱,沒想到半個月后等缀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡娇昙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年尺迂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涯贞。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡枪狂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宋渔,到底是詐尸還是另有隱情州疾,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布皇拣,位于F島的核電站严蓖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏氧急。R本人自食惡果不足惜颗胡,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吩坝。 院中可真熱鬧毒姨,春花似錦、人聲如沸钉寝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嵌纲。三九已至俘枫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逮走,已是汗流浹背鸠蚪。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留师溅,地道東北人茅信。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像墓臭,于是被迫代替她去往敵國和親蘸鲸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1起便、簡介 模型假設(shè):(1)每筆貸款在給定期間內(nèi)違約率不變棚贾;(2)每個借款人的違約率非常小,且違約數(shù)相互獨立榆综。所以違...
    cannier_ceac閱讀 9,134評論 0 3
  • 1妙痹、簡介 信用風險是貸款和債券投資面臨的主要風險。Credit Metrics模型通過估計貸款鼻疮、債券等信用工具在一...
    andyham閱讀 2,640評論 0 0
  • 1怯伊、簡介 信用風險是貸款和債券投資面臨的主要風險。Credit Metrics模型通過估計貸款判沟、債券等信用工具在一...
    cannier_ceac閱讀 7,018評論 1 3
  • 海外CDS市場發(fā)展概況 發(fā)展歷史 CDS誕生于美國耿芹,自1995年發(fā)展至今,按照其每段時期特定的歷史背景和CDS市場...
    shenciyou閱讀 14,873評論 0 4
  • 減肥這個詞語非常的流行,四季都行走在我們的日常生活中迹炼,在地鐵上砸彬,在公交車上,在商場斯入,在服裝店里砂碉,在電影院里,在餐廳...
    3e81098bf2ef閱讀 449評論 7 5