R语言实现 Copula 算法建模依赖性案例分析报告

copula是将多变量分布函数与其边际分布函数耦合的函数,通常称为边缘。

由Kaizong Ye,Sherry Deng撰写

Copula是建模和模拟相关随机变量的绝佳工具。Copula的主要吸引力在于,通过使用它们,你可以分别对相关结构和边缘(即每个随机变量的分布)进行建模。 

copulas如何工作 

首先,让我们了解copula的工作方式。 

我们使用cor()和配对图检查样本相关性。 


热门课程

R语言数据分析挖掘必知必会

面对扑面而来的数据浪潮,包含Google、Facebook等国际企业,都已采用R语言进行数据分析

探索课程

这是包含新随机变量的配对图u。 

​我们可以绘制矢量的3D图表示u。 

现在,作为最后一步,我们只需要选择边缘并应用它。我选择了边缘为Gamma,Beta和Student,并使用下面指定的参数。

这是随机变量的配对图:

使用copula

让我们使用copula复制上面的过程。
现在我们已经通过copula(普通copula)指定了依赖结构并设置了边缘,mvdc()函数生成了所需的分布。然后我们可以使用rmvdc()函数生成随机样本。

现在我们已经通过copula(普通copula)指定了依赖结构并设置了边缘,该mvdc()函数生成了所需的分布。然后我们可以使用该rmvdc()函数生成随机样本。

模拟数据当然非常接近之前的数据,显示在下面的配对图中:


应用示例

现在为现实世界的例子。我们将拟合两个股票 ,并尝试使用copula模拟 。 
让我们在R中加载 :

在直接进入copula拟合过程之前,让我们检查两个股票收益之间的相关性并绘制回归线:
我们可以看到 正相关 :


在上面的第一个例子中,我选择了一个正态的copula模型,但是,当将这些模型应用于实际数据时,应该仔细考虑哪些更适合数据。例如,许多copula更适合建模非对称相关,其他强调尾部相关性等等。我对股票回报的猜测是,t-copula应该没问题,但是猜测肯定是不够的。本质上, 允许我们通过函数使用BIC和AIC执行copula选择 :

 
拟合算法确实选择了t-copula并为我们估计了参数。 
让我们尝试拟合建议的模型,并检查参数拟合。

 我们来看看我们刚估计的copula的密度


现在我们只需要建立Copula并从中抽取3965个随机样本。

这是包含的样本的图:


 
t-copula通常适用于在极值(分布的尾部)中存在高度相关性的现象。
 

现在我们正面临困难:对边缘进行建模。为简单起见,我们将假设正态分布 。因此,我们估计边际的参数。

两个直方图显示如下

​​

现在我们在函数中应用copula,从生成的多变量分布中获取模拟观测值。最后,我们将模拟结果与原始数据进行比较。

这是在假设正常边缘和依赖结构的t-copula的情况下数据的最终散点图:


正如您所看到的,t-copula导致结果接近实际观察结果 。 

让我们尝试df=1df=8:

 
显然,该参数df对于确定分布的形状非常重要。随着df增加,t-copula倾向于高斯copula。


可下载资源

​非常感谢您阅读本文,如需帮助请联系我们!


关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。


 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498