我有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