如何解释copula计算的概率?

时间:2019-10-02 15:34:38

标签: r probability

我有27个站的数据(3个变量; X,Y,Z),我想计算x = y = z = 0.9时(X> x,Y> y,Z> z)的概率。 / p>

我已经使用pobs()函数对数据(u,v,z)进行了转换,并使用fitCopula()和gofCopula()函数并比较了计算出的AIC,BIC和对数似然值,找到了每个站点最适合的copula。在基于选定的copula获得每个站点的copula参数之后,我使用pCopula(数据,拟合copula)计算了概率(P)。 现在,每个站点都有X,Y,Z,u,v,z和P的3672个值(我假设显示了3个变量的联合概率)。但是,我想计算x = y = z = 0.9时(X> x,Y> y,Z> z)的概率。 我该如何计算?计算出的P值对计算P(X> x,Y> y,Z> z)是否有用?

#Original data 
df <- data.frame (X,Y,Z)
# Transformed data
dg <- pobs(df,ties.method = "first")

U <-data.frame("X"=dg[,1], "Y"=dg[,2], "Z"=dg[,3])
U <- as.matrix(U)
UXY <- data.frame("X"=dg[,1],"Y"=dg[,2])
UXY <- as.matrix(UXY)
UXZ <- data.frame("X"=dg[,1],"Z"=dg[,3])
UXZ <- as.matrix(UXZ)
UYZ <- data.frame("Y"=dg[,2],"Z"=dg[,3])
UYZ <- as.matrix(UYZ)


# trivariate copula X,Y,Z
f3 <- frankCopula(5.27,dim = 3)
multicop <- pCopula(U, f3)

# Bivariate copula X, Y
fXY <- frankCopula(4.7)
bicop_XY <- pCopula(UXY, fXY)

# Bivariate copula X, Z
fXZ <- frankCopula(10.1)
bicop_XZ <- pCopula(UXZ, fXZ)

# Bivariate copula Z, Y
fZY <- frankCopula(4.71)
bicop_ZY <- pCopula(UZY, fZY)

# now the exceedance probability is based on this: 
# P(X>x, Y>y, Z>z)=p(u`,v`,z`)=1-u-v-z+c(u,v)+c(u,z)+c(z,v)-c(u,v,z)

p <- 1 - U[,1] - U[,2] - U[,3] + bicop_XY + bicop_XZ + bicop_YZ - multicop

现在,我有X,Y和Z每种组合的概率(P的3672个值)。当X,Y和Z超过第90个百分位数时,我该如何计算事件的概率?当a为第90个百分位数时,Pr(X> a,Y> a,Z> a)

我可以做这样的事情吗?

a <- 0.9; b <- 0.9; c<-0.9

f3 <- frankCopula(5.27, d=3)
uvz <- pCopula(c(a,b,c), f3)


f2_1 <- frankCopula(4.7)
f2_2 <- frankCopula(10.1)
f2_3 <- frankCopula(4.71)
uv <- pCopula(c(a,b), f2_1)
uz <- pCopula(c(a,b), f2_2)
vz <- pCopula(c(a,b), f2_3)

P(U>u, V>v, Z>z)=1-0.9-0.9-0.9+uv+uz+vz-uvz

0 个答案:

没有答案