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

copula是将多变量分布函数与其边际分布函数耦合的函数,通常称为边缘或简单的边缘。Copula是建模和模拟相关随机变量的绝佳工具。

Copula的主要吸引力在于,通过使用它们,您可以分别对相关结构和边缘(即每个随机变量的分布)进行建模。这可能是一个优点,因为对于某些边缘组合,没有内置函数来生成所需的多变量分布。例如,在R中,很容易从多元正态分布中生成随机样本,但是对于分别其边缘分别为Beta,Gamma和Student的分布来说,这样做并不容易。
此外,正如您可以通过谷歌搜索copula看到的那样,有各种各样的模型提供了一组非常不同且可定制的相关结构,可以很容易地适应观察到的数据并用于模拟。这种多样的选择是我最喜欢copulas的事情之一。

在这篇文章中,我们将展示如何使用copula包在R中使用copula,然后我们尝试提供一个简单的应用示例。

copulas如何工作 

但首先,让我们试着了解copula的实际工作方式。
我们使用包n给出协方差矩阵,从3个随机变量的多元正态分布中生成样本。sigmaMASS

图书馆(MASS)
set.seed(100)

m < - 3
n < - 2000
西格玛< - 矩阵(c(1,0.4,0.2,
0.4,1,-0.8,
0.2,-0.8,1),
nrow = 3)
z < - mvrnorm(n,mu = rep(0,m),Sigma = sigma,empirical = T)

现在我们使用cor()和配对图检查样本相关性。
我们将设置method='spearman'为使用 而不是函数中的'pearson'方法cor()(这在我们的例子中并不是绝对必要的,因为我们将使用椭圆形copula,如果你使用非椭圆形copula,你可能想要使用Spearman的Rho或Kendall的Tau)。

库(斗志)
心病(Z,方法= '斯皮尔曼')
pairs.panels(Z)

[,1] [,2] [,3]
[1,] 1.0000000 0.3812244 0.1937548
[2,] 0.3812244 1.0000000 -0.7890814
[3,] 0.1937548 -0.7890814 1.0000000

输出和配对图显示我们的样本确实具有完全预期的相关结构。
Rplot

你< -  pnorm(z)
pairs.panels(U)

这是包含在中的新随机变量的配对图u。请注意,每个分布在[0,1]区间内是均匀的。还要注意,相关性相同,实际上,我们应用的变换并没有改变随机变量之间的相关结构。基本上我们只留下通常被称为依赖结构的东西
Rplot01
通过使用rgl库,我们可以绘制矢量的漂亮3D表示u。这非常适合演示目的,您可以轻松地围绕图形旋转,以防您想要检查不同的视角:  只需单击图片并拖动鼠标即可。

库(RGL)
PLOT3D格式(U [1]中,u [2],U [1,3],PCH = 20,列= 'navyblue')

 
浏览图片1
现在,作为最后一步,我们只需要选择边距并应用它们u。我选择了边缘为Gamma,Beta和Student,并使用下面指定的参数进行分配。

x1 < -  qgamma(u [,1],shape = 2,scale = 1)
x2 < - qbeta(u [,2],2,2)
x3 < - qt(u [,3],df = 5)
PLOT3D格式(X1,
  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值