【视频】Copula算法原理和R语言股市收益率相依性可视化分析-2
https://developer.aliyun.com/article/1488304
简单的应用示例
现在为现实世界的例子。我们将拟合两个股票 ,并尝试使用copula模拟 。
让我们在R中加载 :
cree < - read.csv('cree_r.csv',header = F)$ V2 yahoo < - read.csv('yahoo_r.csv',header = F)$ V2
在直接进入copula拟合过程之前,让我们检查两个股票收益之间的相关性并绘制回归线:
我们可以看到 正相关 :
在上面的第一个例子中,我选择了一个正态的copula模型,但是,当将这些模型应用于实际数据时,应该仔细考虑哪些更适合数据。例如,许多copula更适合建模非对称相关,其他强调尾部相关性等等。我对股票收益率的猜测是,t-copula应该没问题,但是猜测肯定是不够的。本质上, 允许我们通过函数使用BIC和AIC执行copula选择 :
pobs(as.matrix(cbind(cree,yahoo)))\[,1\] selectedCopula $ PAR \[1\] 0.4356302 $ PAR2 \[1\] 3.844534
拟合算法确实选择了t-copula并为我们估计了参数。
让我们尝试拟合建议的模型,并检查参数拟合。
t.cop set.seed(500) m < - pobs(as.matrix(cbind(cree,yahoo))) COEF(FIT) rho.1 df 0.43563 3.84453
我们来看看我们刚估计的copula的密度
rho < - coef(fit)\[1\] df < - coef(fit)\[2\]
现在我们只需要建立Copula并从中抽取3965个随机样本。
rCopula(3965,tCopula( = 2, ,df = df)) \[,1\] \[,2\] \[1,\] 1.0000000 0.3972454 \[2,\] 0.3972454 1.0000000
这是包含的样本的图:
t-copula通常适用于在极值(分布的尾部)中存在高度相关性的现象。
现在我们面临困难:对边缘进行建模。为简单起见,我们将假设正态分布 。因此,我们估计边缘的参数。
直方图显示如下:
现在我们在函数中应用copula,从生成的多变量分布中获取模拟观测值。最后,我们将模拟结果与原始数据进行比较。
这是在假设正态分布边缘和相依结构的t-copula的情况下数据的最终散点图:
正如您所看到的,t-copula导致结果接近实际观察结果 。
让我们尝试df=1
和df=8:
显然,该参数df
对于确定分布的形状非常重要。随着df
增加,t-copula倾向于正态分布copula。