阅读论文“使用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)
代码:
在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)
你有什么想法吗?
答案 0 :(得分:1)
De Michele等人提出的构造原理。 (2017)在三变量情况下被广泛称为 vine copula 或 pair-copula构造。如果您想使用这些模型,我建议您先阅读更多相关信息。一个很好的起点是Aas et al. (2009)的论文,您会在http://www.vine-copula.org或google 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)