基于Copula的条件概率

时间:2018-05-11 10:50:08

标签: r derivative

阅读论文“使用copulas进行海上风暴的多变量模型”(De Michele et al。,2007)https://www.sciencedirect.com/science/article/pii/S0378383907000592 我坚持使用R中的偏导数计算。

数学背景:

如果你有三个变量H,D,I(U1 = F(H)等),你需要估计条件概率

P(U3 | U1,U2)

你应该首先估算偏导数的比例,如

(∂C(u1,u2,u3)/∂u1∂u2)/(∂C(u1,u2)/∂u1∂u2)

(有关详细信息,请参阅图片),According to De Michele et al., 2007

代码:

在R包“VineCopula”(https://cran.r-project.org/web/packages/VineCopula/VineCopula.pdf)之后,函数dduCopula评估偏导数

∂C(U1,U2)/∂u1,

因此,对于简单的偏导数(图像中名为k,m和n),此过程很容易。

但是如何估算与copula C(k,m)相比的另一个变量“u1”的偏导数。

∂C(k,m)/∂u1?

对于偏导数k和n:

library(VineCopula)
u1<-pobs(H)
u2<-pobs(D) 
library(copula)
C_hd <- BB1Copula()
k <- ddvCopula(cbind(u1,u2), C_hd)
n <- dduCopula(cbind(u1,u2), C_hd)

你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

De Michele等人提出的构造原理。 (2017)在三变量情况下被广泛称为 vine copula pair-copula构造。如果您想使用这些模型,我建议您先阅读更多相关信息。一个很好的起点是Aas et al. (2009)的论文,您会在http://www.vine-copula.orggoogle scholar上找到更多内容。

现在提出您的问题:根据连锁规则,我们获得 this ,因此 that

R中的一个例子是:

# required package
library(VineCopula)

## simulate data
H <- rnorm(100)
D <- rnorm(100)
I <- rnorm(100)

## probability integral transforms
u_H <- pobs(H)
u_D <- pobs(D) 
u_I <- pobs(I)

## define dummy pair-copulas
C_HD <- BB1Copula()
C_DI <- BB1Copula()
C_HIgivenD <- BB1Copula()  # this is conditional dependence!

## calculate the conditional probability
k <- ddvCopula(cbind(u_H, u_D), C_HD)
m <- dduCopula(cbind(u_D, u_I), C_DI)
cond_prob <- dduCopula(cbind(k, m), C_HIgivenD)