【Numpy金融领域的应用】伽玛分布和贝塔分布随机抽样——以债券违约率与回收率为分析对象

1、案例详情

  J银行是总部位于英国伦敦的一家商业银行,该银行的固定收益投资部门负责整个银行的债券投资业务。假定你是该部门的债券分析师助理,日常的工作之一就是协助投资经理分析债券的信用风险,并且重点参考了全球最大的3家信用评级机构之一——穆迪(Moody’s )定期发布的全球企业债券违约率与回收率"。根据2017年2月穆迪发布的《年度违约研究:1920-2016年企业违约率与回收率》(Annual Default Study: Corporate Default and RecoveryRates,1920-2016 )的报告,表2-10列出了2000年至2016年全部债券的违约率和违约发生后的回收率(简称“回收率”)。

 续表:

  基于投资风险分散的原则,J银行目前配置的债券投资组合中共有200只债券并且每只债券的配置权重均相同,投资的债券面值共计120亿英镑,在分析风险时,设定债券违约金额服从伽玛分布(Gamma distribution ),回收率则服从贝塔分布(Beta distribution )。
为了协助投资经理完成一份针对J银行债券投资组合的风险分析报告,你需要根据表2-10的数据并运用Python完成4项编程任务。

2、编程任务

  【任务1】写出当债券违约金额服从伽玛分布的概率密度函数以及期望值、标准差的表达式,同时,也要写出当债券违约回收率服从贝塔分布的概率密度函数以及期望值、标准差的表达式。

  【任务2】分别创建包含表2-10的违约率和回收率的数组,运用这些数据计算J银行目前债券投资组合的违约金额、回收率的均值和标准差。

  【任务3】根据任务2计算得到的债券违约金额均值和标准差,计算债券违约金额服从伽玛分布的形状参数cα、尺度参数p的数值;对满足这两个参数的伽玛分布进行10万次随机抽样以模拟债券违约金额,并计算随机抽样结果的均值与标准差。

  【任务4】根据任务2计算得到的回收率均值和标准差,计算回收率服从贝塔分布的参数a、β;同时从满足这两个参数的贝塔分布中进行10万次随机抽样以模拟债券违约的回收率,并计算随机抽样结果的均值与标准差。

3、编程实现

Task1_Begin

 假设债券违约金额变量x服从伽玛分布(也称伽马分布),概率密度函数如下:

 式 (2-9)中的r是一个伽玛函数,伽玛分布的期望值E(x)= αB-’,方差D(x)= aB2,标准差是、√D(x)=√aβ’。其中,α称为形状参数( shape parameter ),3称为尺度参数(( scaleparameter )。
假设回收率变量y服从贝塔分布(也称B分布),它的概率密度函数如下:

 式 (2-10)中的厂依然是伽玛函数,此外,0<y<1,有两个参数c>0,B0。

 贝塔分布的期望值E(x)= α/(α+ 3),方差D(x)= αB/[(a + B)(α + β+1)],标准差就是√D(x) =√aB/[K(a +B)(a+ β+ 1)]。

Task2_Begin

import numpy as np
default_prob=np.array([0.025,0.037,0.029,0.018,0.008,0.006,0.006,0.003 ,0.025,0.050,0.012,0.009,0.012,0.012,0.009,0.017,0.021])
#债券违约率数组
recovery=np.array ([0.252,0.216,0.295,0.414,0.585,0.565,0.550,0.551,0.341,0.338,0.515,0.457,0.445,0.461,0.479,0.406,0.350])
#债券违约回收率的数
par=120 #债券投资组合的面值(亿英镑)
default_value=default_prob*par
#违约金额的数组
default_mean=default_value.mean()
#计算违约金额的平均
default_std=default_value.std()
#计算违约金额的标准
print('J银行债券投资组合的违约金额平均值(亿英镑)',round (default_mean,2))
print('J银行债券投资组合的违约金额的标准差(亿英镑)',round (default_std,2))
recovery_mean=recovery.mean()
#计算回收率的平均值
recovery_std=recovery.std()
#计算回收率的标准差
print('J银行债券违约后回收率的平均值',round (recovery_mean,6))
print('J银行债券违约后回收率的标准差1',round (recovery_std,6))

Task3_Begin

alpha_gamma=default_mean**2 /default_std**2
#违约率服从伽玛分布的 alpha
beta_gamma=default_mean/default_std**2
#违约率服从伽玛分布的beta
print('违约金额服从伽玛分布的alpha',alpha_gamma)
print('违约金额服从伽玛分布的beta',beta_gamma)
I=100000
#随机抽样的次数
random_gamma=np.random.gamma(shape=alpha_gamma, scale=beta_gamma,size=I)#按照债券违约率服从的伽玛分布进行随机抽样
random_gamma.mean ()
#输出随机抽样结果的均值
random_gamma.mean ()
#输出随机抽样结果的均值

Task4_Begin

import scipy.optimize as sco#导入 SciPy子模块 optimize
def f(x):
#需要定义一个函数a,b=xeql=a/(a+b)-recovery_meaneq2=a*b/((a+b+1)* (a+b)**2)-recovery_std**2return [eql,eq2]
result=sco.fsolve(f,[0.5,0.5])
print('回收率服从贝塔分布的alpha' , result [0])
print('回收率服从贝塔分布的beta' , result [1])
random_beta=np.random.beta(a=result[0] , b=result[1],size=I)#按照回收率服从的贝塔分布进行随机抽样
random_beta.mean()
#随机抽样的均值
random_beta.std()
#随机抽样的标准差

 以上随机抽样得到债券违约回收率的均值和标准差,与任务2中计算得出的债券违约回收率均值0.424 706和标准差0.108 919也是很接近的。

【Numpy金融领域的应用】伽玛分布和贝塔分布随机抽样——以债券违约率与回收率为分析对象相关推荐

  1. 计算机在金融领域的,计算机在金融领域中的应用

    计算机在金融领域中的应用 作者:张瀚月 来源:<环球市场信息导报>2014年第05期 计算机作为二十世纪最重要的发明,自诞生之日起便给各个行业带来了深刻的变革,并给人们的生活和生产造成巨大 ...

  2. Python金融领域人工智能教程

    Python金融领域人工智能教程 财务分析.时间序列分析.投资组合优化.CAPM.算法交易.Q-Learning 等等! 课程英文名:Financial Engineering and Artific ...

  3. 金融领域首个开源中文BERT预训练模型,熵简科技推出FinBERT 1.0

    出品 | AI科技大本营 头图 | CSDN付费下载于东方IC 为了促进自然语言处理技术在金融科技领域的应用和发展,熵简科技 AI Lab 近期开源了基于 BERT 架构的金融领域预训练语言模型 Fi ...

  4. 安全可控、依法合规 人工智能落地金融领域“讲原则”

    如今,随着国家新兴数字化基础设施的推进,5G.云计算.大数据等模块的成熟,人工智能产业发展的"养料"日益充足. 依据产业链上下游关系,人工智能划分为基础层.技术层和应用层.从全局来 ...

  5. 中国首份AI落地白皮书发布!地方政府规模大,金融领域最积极,北京供给超上海深圳总和...

    组委会 发自 凹非寺  量子位 报道 | 公众号 QbitAI 人工智能落地,有方向可以参考了. 在MEET2020智能未来大会上,IDC联合量子位发布白皮书,全面展示了2019年中国人工智能应用状况 ...

  6. 机器学习(MACHINE LEARNING)MATLAB经济金融领域简单数学模型和分析

    文章目录 1 概述 2 MATLAB代码 3 分析 1 概述 经济金融领域简单数学建模和分析:MATLAB成本曲线方程和销售收入直线方程 2 MATLAB代码 x=[0:0.1:5]; y=9*x; ...

  7. 从蚂蚁金服一窥人工智能在金融领域的机遇与挑战

    从蚂蚁金服一窥人工智能在金融领域的机遇与挑战 CCAI 蚂蚁金服 人工智能 金融 中国人工智能大会 阅读2469  编者按:由中国人工智能学会.阿里巴巴以及蚂蚁金服联合主办,CSDN.中国科学院自动化 ...

  8. 金融领域下的数据挖掘算法应用:智能推荐算法模型

    摩天,用友旗下社会化的企业数智化学习认证社区,提供数智营销.智慧医疗.数智金融.智能制造.项目管理等精品课程,数智化人才上摩天!https://mot.yonyou.com/ 你将会学到: 智能推荐系 ...

  9. 金融领域下的数据挖掘算法应用:逻辑回归模型

    摩天,用友旗下社会化的企业数智化学习认证社区,提供数智营销.智慧医疗.数智金融.智能制造.项目管理等精品课程,数智化人才上摩天!https://mot.yonyou.com/ 你将会学到: 股票客户流 ...

最新文章

  1. 自动驾驶产业链全梳理
  2. 生成具有三态背景图片的按钮
  3. python with语句与contextlib
  4. KindEditor中使用val()获取content内容后图片不显示
  5. java 变量锁_一张图看透java的“锁”事
  6. Java语言的基础知识11
  7. [教程指导]索尼官方4.0.3系统一键root方法! [复制链接]
  8. kafka 发布-订阅模式_使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...
  9. HTML5笔记——formData
  10. 关于myeclipse输入法编程繁体的修正
  11. Runtime Library
  12. adb卸载手机内置软件
  13. BeanUtils —— 操作JavaBean 工具 学习笔记
  14. 金山打字通 官网 下载
  15. Python批量给PDF加图片签名
  16. IOS开发之——硬件开发-加速计传感器(03)
  17. 【邢不行|量化小讲堂系列05-Python量化入门】计算创业板平均市盈率
  18. 基于宏指令下的威纶通配方功能(RW位控制)
  19. mysql中where in用法
  20. 表关联之内关联用法案例详解

热门文章

  1. 红米AC3000、小米cr8806、8808、8809开启telnet和SSH
  2. java json 下划线_为什么rest接口返回json建议采用下划线形式,不要用驼峰
  3. redis删除策略和逐出策略
  4. 得到你的人却得不到你的心
  5. 基于android手机的健身预约系统APP开发
  6. Empire监听、木马、连接
  7. 如何判断一个对象是否为空{}
  8. 【神秘海域】[动图] 结合题目-手把手带你剖析 “带环链表”
  9. HDI激光钻孔和常见问题
  10. JVM的清洁工具——常见的垃圾回收器