R中copula的期望值

R中copula的期望值,r,distribution,probability-distribution,R,Distribution,Probability Distribution,我有一个copula表示两个变量X和Y之间的依赖关系。我想计算以下公式:EX | Y≤1%. 它是X的期望值,条件是Y小于1%。 我看到有人问了一个类似的问题,但提供的R代码并没有给出我想要的值。 下面是关于copula和边际分布的一些细节 library(VineCopula) library(copula) #I estimate my Copula and assumes normal distribution for the two marginals copula_dist &l

我有一个copula表示两个变量X和Y之间的依赖关系。我想计算以下公式:EX | Y≤1%. 它是X的期望值,条件是Y小于1%。 我看到有人问了一个类似的问题,但提供的R代码并没有给出我想要的值。 下面是关于copula和边际分布的一些细节

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)

你必须计算这个二重积分:x*pdfx,y的积分,-oo
library(copula)

# the distribution
copula_dist <- mvdc(copula=claytonCopula(param=1.0), margins=c("norm","norm"),
                    paramMargins=list(list(mean=0, sd=5),list(mean=0, sd=5)))

### we will calculate E[X | Y < y0]
y0 <- 1/100

### approximation of E[X | Y < y0] using simulations
sim <- rMvdc(100000, copula_dist)
mean(sim[sim[,2]<y0,1])
# [1] -1.967642

### approximation of E[X | Y < y0] using numerical integration
### this is E[X * 1_{Y<y0}] / P(Y < y0)
library(cubature)
# PDF of the distribution 
pdf <- function(xy) dMvdc(xy, copula_dist)
# P(Y < y0)
denominator <- pnorm(y0, mean=0, sd=5)
# integrand
f <- function(xy) xy[1] * pdf(xy)
# integral
integral <- hcubature(f, lowerLimit = c(-Inf, -Inf), upperLimit = c(Inf, y0))
integral$integral / denominator
# [1] -1.942691

非常感谢Stephane@我很乐意帮忙。请你解释一下,数学公式是xpdfx,y的积分,-oo