首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中Clayton Copula的概率分布

R中Clayton Copula的概率分布
EN

Stack Overflow用户
提问于 2019-03-29 01:05:25
回答 1查看 163关注 0票数 1

我有一个具有变量X和Y的克莱顿Copula,我想得到联合概率和条件概率P(X≤x,Y≤y)和P(X≤x|Y≤y)。例如,在Y低于其第一个百分位数的条件下,X低于其第一个百分位数的概率: P(X≤1%|Y≤1%)

我尝试过使用R prob()函数,但我不确定输出是否正确。

代码语言:javascript
运行
复制
library(VineCopula)
   library(copula)
#I estimate my Copula and assumes normal distribution for the two marginals
copula_dist <- mvdc(copula=claytonCopula(param=1.0), margins=c("norm","norm"),
                    paramMargins=list(list(mean=0, sd=5),list(mean=0, sd=5)))

#I take a sample of 500 events
sim <- rMvdc(500,copula_dist)
# Compute the density
pdf_mvd <- dMvdc(sim, my_dist)
# Compute the CDF
cdf_mvd <- pMvdc(sim, my_dist)

#I wonder whether this gives me the proba P(X<0.01|Y<0.01)
prob(claytonCopula(param=1.0), c(0,.01),c(0,0.01)) 

我得到了25.26%的输出,但我不确定它是否正确。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-29 16:30:12

使用条件概率的定义:

代码语言:javascript
运行
复制
P(X <= a | Y <= b) = P(X <= a, Y <= b) / P(Y <= b)

然后按如下步骤进行:

代码语言:javascript
运行
复制
library(copula)

copula <- mvdc(copula=claytonCopula(param=1.0), margins=c("norm","norm"),
               paramMargins=list(list(mean=0, sd=5),list(mean=0, sd=5)))
a <- 0.01; b <- 0.01
pMvdc(c(a,b), copula) / pnorm(b, mean=0, sd=5)
# 0.6670215
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55403265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档