本文含 1845 字,2 图表截屏
建议阅读 10 分钟
引言
本文是「信用风险建模 in Python」系列的第五篇,其实在之前的 Cufflinks 那篇已经埋下了信用风险的伏笔,
- 信用组合可视化
- 信用风险 101
- 独立模型 - 伯努利模型
- 独立模型 - 泊松模型
- 混合模型 - 概述
注:由于每次我都是在 word 里写好,然后再在微信公众里编辑。但是文章里太多数学公式和符号,每次截图和调整符号都让我崩溃,本来写文花了不少时间,编辑又花了差不多同样的时间。事情太多而最近身体一直不好,不能再这么低效下去了。以后我就直接把 word 里的东西以图片形式发出来。我知道从手机上看字有些小,真想学的建议用网页打开,或者将图片存下来是可以看的。
东西都是干货,还是能学到不少只是的。只是我真的没有时间用在排版编辑了,见谅。
文中计算条件概率的代码:
代码语言:javascript复制def cond_PD(p, rho, G):
num = norm.ppf(p) - np.sqrt(rho)*G
denom = np.sqrt(1-rho)
return norm.cdf(num/denom)
文中计算二维高斯分布的 CDF 的代码:
代码语言:javascript复制import numpy.linalg as nla
import scipy.integrate as nInt
def JDP(x1, x2, rho):
bounds = [[-7, norm.ppf(x1)],[-7, norm.ppf(x2)]]
f, err = nInt.nquad( GaussianDensity2D, bounds, args=(rho,) )
return f
def GaussianDensity2D(x1, x2, rho):
omega = np.array([[1,rho],[rho,1]])
t1 = 2*np.pi*np.sqrt(nla.det(omega))
t2 = np.dot(np.dot(np.array([x1,x2]),nla.inv(omega)),np.array([x1,x2]))
return np.exp(-t2/2) / t1
文中的两幅图: