原文链接:http://tecdat.cn/?p=24753

原文出处:拓端数据部落公众号

摘要

在这项工作中,我通过创建一个包含四只基金的模型来探索 copula,这些基金跟踪股票、债券、美元和商品的市场指数。然后,我使用该模型生成模拟值,并使用实际收益和模拟收益来测试模型投资组合的性能,以计算风险价值(VaR)与期望损失(ES)。

相关视频:Copula算法原理和R语言股市收益率相依性可视化分析

Copula算法原理和R语言股市收益率相依性可视化分析

,时长16:34

一、介绍与概述

Copulas 对多元分布中变量之间的相关性进行建模。它们允许将多变量依赖关系与单变量边缘分布相结合,允许我们对构成多变量数据的每个变量使用许多单变量模型。Copulas 在 2000 年代开始流行。根据 Salmon (2009) 的说法,Li (2000) 最近提出的Copulas应用之一是 2008 年开始的金融危机。我们将使用 copulas 来模拟四个 ETF 基金的行为:IVV,跟踪标准普尔 500 指数;TLT,跟踪长期国债;UUP,追踪外汇指数;以及商品的 DBC

二、理论背景

copula 是一个多变量 CDF,其边缘分布都是 Uniform (0,1)。假设 Y 有 d 维,并且有一个多元 和边缘 。很容易证明,每个 都是 Uniform(0,1)。因此, 的 CDF 根据定义是一个 copula。使用 Sklar (1973) 的定理,然后我们可以将我们的随机变量 Y 分解为一个 copula CY ,它包含关于我们的变量 Y 之间相互依赖的信息,以及单变量边缘 CDFs FY ,它包含关于每个变量的所有信息单变量边缘分布。对于 d 维,我们有:

并使每个,我们有:

如果我们对等式(2)进行微分,我们会发现 Y 的密度为:

方程 (3) 中的结果允许我们创建多变量模型,这些模型考虑了变量的相互依赖性(方程的第一部分)和每个变量的分布(方程的第二部分)。我们可以使用 copula 和边缘部分的参数版本来创建可用于运行测试和执行预测的模型。在接下来的几节中,我们将使用用于统计计算的 R 语言将高斯和 t-copula 拟合到介绍中描述的 ETF 的对数收益率。有了 copula 和边缘,我们将使用模型来确定投资的风险价值 (VaR) 和预期损失 (ES)。

三、算法实现与开发

像往常一样,我们从读取文件开始。图 1 显示了价格图:注意 IVV 和 DBC(股票和商品)之间的关系以及 TLT 和 UUP(元和国债)之间的关系。


# 将 ETF 读入read.zoo("F.csv")
# 获取最近501天tf[(T-500):T,]
# 绘制价格pdf("价格.pdf")

在这种情况下,我们计算对数收益率。图 2 显示了收益图。

# 计算对数收益
le <- lag(e,-1
log(ef) - log(lef) ) * 100

然后我们做一个配对图来确定结果是否相关,例如,正如期望的那样,IVV 和 DBC 之间存在非常高的相关性。图 3 显示了配对图。然后我们获得边距的参数,拟合每个变量的分布。结果见表一


# 拟合分布fitdr
## 得到结果矩阵
# 将 AIC 函数应用于第一项(值)
# params 列表的第四项 (loglik)
AIC(saply (saply(prms, 4))# params 列表的第一项(估计)
sapply (sapply(pams,3))

图 4 显示了拟合分布与来自变量的真实数据进行比较的图。现在我们有了边缘分布,我们需要找到模型的 copula。我们首先使用概率变换并获得 中的每一个,我们知道它们是 Uniform(0,1)。这是通过以下代码完成的:

# 现在我们需要均匀分布
IV <- pct(IVV, a)
rt <- cbind(uV uL, UP, DC)

图 5 显示了均匀分布之间的相关性。通过均匀分布,我们可以看到哪种类型的参数 copula 最适合。我们将拟合高斯 copula 和 t-copula,记录它们的 AIC 并查看哪一个提供了最佳拟合。

图 5:均匀分布之间的相关性


# 拟合高斯 copulafit.gaussian <- fitCopula (ncp))
# 记录拟合的AIC
fit.aic = AIC(filik,############################################### ############
# 现在是 t-copulafitCopula (tcop, url00))
# 记录拟合的AIC

AIC(fiik
length(fite)

比较两种拟合,如表 II 所示,我们发现 t-copula 拟合最好,因此我们将根据 t-copula 的参数创建一个模型。然后,我们使用该模型生成 10,000 个观察结果,模拟我们模型的可能结果。我们的模拟模型与拟合模型之间的图形比较可以在图 6 中看到 - 模拟非常接近拟合模型。

tCopula(parun")
cop.dist <- mvdc(copt,
parast1)
rmvdc(co00)

现在我们有了模拟的观察结果,我们将使用参数方法计算风险价值 (VaR) 和预期损失 (ES)。我们将假设一个投资组合(任意选择)在 IVV 中投资 30%,在 TLT 中投资 15%,在 UUP 中投资 35%,在 DBC 中投资 20%。为了计算投资组合 w 的收益率 Rp,我们简单地使用矩阵代数将我们的模拟收益率 Rs 乘以权重,如 Rp = Rs × w。然后我们将 t 分布拟合到 Rp 并使用它来估计 VaR 和 ES。对于 t 分布,VaR 和 ES 的公式为:

其中:

• S:仓位大小

• F -1 ν:逆 CDF 函数

• fν:密度函数 • µ:平均值

• λ:形状/尺度参数

• ν:自由度

• α:置信水平

R中公式的应用实现如下。请注意,在代码中,VaR 和 ES 被四舍五入到最接近的千位。结果在表III中。


# 计算模拟值的 VaR 和 ESfitdistr(re, "t")
es <- -m+lada*es1*es2

我们的最终任务是计算非参数 ES 和 VaR,由以下公式给出:

其中:

• S:仓位大小

• qˆ(α):样本收益率的分位数

• Ri:第 i 个样本收益率

R 实现如下:


# 计算真实值的 VaR 和 ES
ret <- (rf %*% w) / 100ES <- -S * sum(ret * ir) / sum (iar)

结果示于表III中。

四、计算结果

表 I 显示了 ETF 边缘 t 分布的估计参数和 AIC 的结果:

表 I 边缘分布

两个 copula 拟合的 AIC 都在表 II 中。

表 II Copula AIC

VaR 和 ES 在表 III 中。

表三 VaR 和 ES

五、总结与结论

这项工作展示了如何估计边缘和 copula,以及如何应用 copula 来创建一个模型,该模型将考虑变量之间的相互依赖性。它还展示了如何计算风险价值 (VaR) 和期望损失 (ES)。


最受欢迎的见解

1.R语言对S&P500股票指数进行ARIMA + GARCH交易策略

2.R语言改进的股票配对交易策略分析SPY—TLT组合和中国股市投资组合

3.R语言时间序列:ARIMA GARCH模型的交易策略在外汇市场预测应用

4.TMA三均线期指高频交易策略的R语言实现

5.r语言多均线量化策略回测比较

6.用R语言实现神经网络预测股票实例

7.r语言预测波动率的实现:ARCH模型与HAR-RV模型

8.R语言如何做马尔科夫转换模型markov switching model

9.matlab使用Copula仿真优化市场风险

拓端tecdat|R语言Copula估计边缘分布模拟收益率计算投资组合风险价值VaR与期望损失ES相关推荐

  1. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  2. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  3. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  4. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  5. 风险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的估计

    原文链接: http://tecdat.cn/?p=15929 风险价值VaR和损失期望值ES是常见的风险度量. 首先明确: 时间范围-我们展望多少天? 概率水平-我们怎么看尾部分布? 在给定时间范围 ...

  6. R语言风险价值VaR(Value at Risk)和ES 的估计

    R语言中可以使用多种方法对风险价值VaR和损失期望值ES进行估计.下面介绍一些常用的方法: 历史模拟法(Historical simulation) 历史模拟法是一种基于历史数据的方法,它假设未来的风 ...

  7. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  8. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

  9. 蒙特卡洛模拟计算风险价值VAR之R语言实现

    一.解析VAR 当在分析方法中计算风险价值(VAR)时,我们需要假设金融工具的返回遵循一定的概率分布.最常用的是正态分布,这也是为什么我们通常称它为delta normal方法.要计算VAR,我们需要 ...

  10. R语言偏相关或者部分相关性系数计算实战:使用psych包计算(Partial Correlation)偏相关系数、拟合回归模型使用两个回归模型的残差计算偏相关性系数

    R语言偏相关或者部分相关性系数计算实战:使用psych包计算(Partial Correlation)偏相关系数.拟合回归模型使用两个回归模型的残差计算偏相关性系数 目录

最新文章

  1. 剑指offer_第6题_旋转数组的最小数字
  2. ResNet在计算机视觉中的应用
  3. :/index.php,http://localhost/my/INDEX.PHP/INDEX/INDEX无法正常运行:解决时找不到Options FollowSymLinks谢谢...
  4. 28.特性trait.rs
  5. redis springmvc mysql_redis和mysql怎么一起在springmvc里面
  6. Canvas之进度条的制作(矩形,圆环)
  7. 疯狂的快递骗局:你稀里糊涂支付9.9元代收费时,有人已获利几千万!
  8. 电子计算机工程 专业大学排名,电子与计算机工程专业大学排名 2021全国排行榜...
  9. java与物联网_java和php做物联网哪个好
  10. 狂人日记学习 之七 三列浮动中间列宽度自适应
  11. E900V21E_S905L3B芯片_UWE5621-wifi-线刷固件
  12. 花呗的24期利息计算器_花呗利息怎么算 利息计算器算一算花呗分期付款利率
  13. 马士兵网络安全大师班薪选课程
  14. CIIP是基于XAF开发的开源信息系统框架
  15. 真空衰变对事件概率的影响
  16. Unbroken——坚不可摧
  17. 车道线检测:ultra fast lane detection + 车道保持
  18. 【RPA入门教程】UIBot命令的基本操作
  19. python小工具小发明_用python写PDF转换器的实现
  20. 【冰糖Python】RuntimeWarning: invalid value encountered in true_divide

热门文章

  1. 第二季-专题2-我从内部看ARM
  2. Mysql优化(出自官方文档) - 第八篇(索引优化系列)
  3. Mysql优化(出自官方文档) - 第六篇
  4. 凸优化第三章凸函数 作业题
  5. 海姆霍兹获3000万元A轮融资,投资方为国科嘉和
  6. 003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明
  7. 构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下后篇)—减少不必要...
  8. 别被数据分析师骗了!用数据说谎的三种办法
  9. tomcat实现多端口、多域名访问(只针对一个tomcat)
  10. HTML DOM nodeName nodeValue