原文链接:http://tecdat.cn/?p=25804
这篇文章是对于 copulas 和重尾的。在寰球金融危机之前,许多投资者是多元化的。
看看上面这张相熟的图:
黑线是近似正态的。红线代表 Cauchy 散布,它是具备一个自由度的 T 散布的一个非凡状况。兴许是因为 Cauchy 和 t 散布混在一起。咱们总是能够计算出教训方差。请看下图。这是对 1 自由度的 t 散布(红色的 Cauchy 散布)和 5 自由度的 t 散布(蓝色)的模仿后果。
为了比拟不同的尾部行为,咱们有咱们所谓的尾部指数。简而言之,在简直任何散布中,某个阈值之后的观测值(比如说最差的 5% 的状况下的观测值)都是渐进式的帕累托散布。
其中 x_m 是截止点,α 将决定尾巴的形态。α 也被称为尾部指数。
当初大家都晓得,金融收益呈现出厚尾。这使得放弃投资组合为左尾事件做好筹备变得更加重要,因为在那个区域,因为相关性的减少,你会同时受到所有资产的影响(正如金融危机所证实的那样)。在这个探讨中,_copulas_施展了重要的作用。_copulas_的概念是相当奇妙的。copula 这个词起源于拉丁语,它的意思是捆绑。当咱们有两个(或更多)资产类别的收益,咱们能够假如或模仿它们的散布。做完这些之后,咱们能够把它们 “ 粘贴 “ 在一起,只对相干局部进行建模,而不思考咱们最后对它们各自散布的建模形式。怎么做?
咱们从英国统计学家 Ronald Fisher 开始,他在 1925 年证实了一个十分有用的性质,即任何间断随机变量的累积散布函数都是均匀分布的。模式上,对于任何随机变量 X,如果咱们示意 作为 X 的累积散布,则 。请记住,当咱们说 ,它仅意味着概率,。这就是 [0,1] 的起源,因为它只是一个概率。从三种不同的散布进行模仿:指数、伽玛和学生 -t,变换它们并绘制直方图:
par(mfrow=c(3,1)) # 宰割屏幕
apply(tm, 2, hist,xlab="", col ="azue") # 绘制
您能够通过这种形式转换任何间断散布。当初,将两个变换后的随机数示意为 和 . 咱们能够将它们“绑定”(copula):. 其中, 是一些函数,并且因为原始变量是“不可见的”(当咱们将其转换为 Uniform 时隐没了),所以咱们当初只探讨两个变量之间的相关性。例如 能够是具备一些相干参数的二元正态分布。我不会在这里写出双变量正态密度,但它只是一个密度,因而,它将阐明在中心地带察看到两个变量在一起的概率,和 / 或在尾部一起的概率。这是绕过原始变量的散布,只谈相干构造的一种形式。
当初让咱们对金融和生产必需品之间的相干构造进行建模。从拉取数据开始:
da0 = (getSymbols(sym\[1\])
for (i in 1:l){
da0 = getSymbols
w <- dailyReturn
w0 <- cbind(w0,w1)
}
apply(rt0, 2, mean) # 定义平均数
apply(rt0, 2, var) # 和标准差
cor(et0) # 无条件的相干关系。
咱们当初要做的是依照探讨的办法对数据进行转换(称之为概率积分转换),并将其绘制进去。同时,咱们模仿两个具备雷同(量化 - 非条件)相关性的随机常模,并比拟这两个数字。
desiy <- kde2d
contour
# 当初从两个具备雷同相关性进行模仿。smnom <- rmvnorm
trnorim_rm <- appl
mdni_im <- kde2d
plot
contour
title
乍一看,这两个数字看起来差不多。但更具体的察看发现,角落更快地收敛到(0,0)、(1,1)坐标。这也是由这些区域的深色等值线色彩表明的。请记住,模仿数据应用的是与实在数据雷同的教训相关性,所以咱们在这里探讨的其实只是构造。
当初让咱们生成一个 copula 函数 ,咱们能够用它来 “ 包裹 “ 或 “ 捆绑 “ 咱们的转换后的收益。咱们定义了一个重尾(df=1)和一个轻尾(df=6)的 copula。咱们能够直观地看到这个函数实际上是什么样子的。这样做的形式与咱们可视化正态密度的形式差不多,但当初因为它是一个双变量函数,所以它是一个三维图。
she <- 0.3
persp(colahevy)
接下来你能够看到通常的相关性度量是雷同的,除了尾部指数,因为咱们只探讨构造,而不是大小。
tau(colight)
tau(coheavy)
rho(colight)
rho(copheavy)
tailIpulight)
tailIheavy)
高低尾不肯定雷同。这只是 t-copula 是对称函数的一个特色。在利用中,应该应用更实在的非对称 copula。
当初咱们定义边缘,并预计 copula 参数。为简略起见,我为收益定义了 Normal 边缘散布,但 copula 依然是 t-dist 且重尾:
# 用从数据中预计的参数来定义你的边际。copurmal <- mvdc
# 拟合 copula。这个函数的默认值是暗藏正告,所以如果产生谬误。# 增加 "hideWarnings=FALSE",这样它就会通知你是否有什么谬误
coporm <- fitMvdc
该函数返回一个有那些可用的 S4 类。copurm@mvc@cpla
coporm@estiat
coporm@fittng.sas
coporm@va.st
print
summary
est <- coeffic # 咱们本人的估计值
mycop <- mvdc
# 从拟合的 copula 进行模仿
simd <- rMvdc
plot
相干构造看起来还不错 – 但你必定能够看到正态边缘是不够的,有几个黑点(实在数据)在红色模仿簇之外。
顺便提一下,当初咱们也能够预计那些没有预先指定形态的 copulas,比方正态或 t,但它们自身就是预计。这属于 “ 非参数 copulas “ 这个更简单的主题。
最受欢迎的见解
1.R 语言基于 ARMA-GARCH-VaR 模型拟合和预测实证钻研
2.r 语言实现 copula 算法建模依赖性案例
3.R 语言 COPULAS 和金融工夫序列数据 VaR 剖析
4.R 语言多元 COPULA GARCH 模型工夫序列预测
5.GARCH(1,1),MA 以及历史模拟法的 VaR 比拟
6.matlab 应用 Copula 仿真优化市场危险数据分析
7.R 语言实现向量主动回归 VAR 模型
8.R 语言随机搜寻变量抉择 SSVS 预计贝叶斯向量自回归(BVAR)模型
9.R 语言 VAR 模型的不同类型的脉冲响应剖析