【问题标题】:Copula-based conditional probability基于 Copula 的条件概率
【发布时间】:2018-05-11 10:50:08
【问题描述】:

阅读论文“A multivariate model of seastorm using copulas”(De Michele 等人,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)很容易。

但是与系词 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)

你有什么想法吗?

【问题讨论】:

    标签: r derivative


    【解决方案1】:

    De Michele 等人提出的构造原则。 (2017)在三元情况下被广泛称为vine copulapair-copula construction。如果您想使用此类模型,我建议您先阅读更多有关它们的信息。一个好的起点是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)
    

    【讨论】:

    • 感谢您对功能和介绍性说明的澄清。现在它完美运行!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多