copula中的概率总和不高于1

时间:2016-04-26 11:37:58

标签: r

我正在从具有泊松边缘的二元高斯copula生成概率矩阵。我无法弄清楚为什么概率不会增加到1但会略微增加。这是代码:

library(copula) 

cop<-normalCopula(param = 0.92, dim = 2)
mv <- mvdc(cop, c("pois", "pois"),list(list(lambda = 6), list(lambda = 4)))

m <- matrix(NA,50,50)
for (i in 0:49) {
  for (j in 0:49) {
    m[i+1,j+1]=dMvdc(c(i,j),mv)
  }
}

sum(m)
[1] 1.048643

编辑:似乎仅当param参数(相关性)与0不同时才会出现此问题。

1 个答案:

答案 0 :(得分:5)

这是dMvdc的作用:

distribution

此处c是您的copula密度,fi是您选择的概率密度(在本例中为dpois),而Fi是相应的cdf&# 39; s(在这种情况下为ppois)。

为了表示有效的概率分布,即积分为1,您需要能够在下面进行最终替换,这需要连续的概率分布:

finalformula

如果您使用离散的pdf(通过Dirac deltas):

dirac

以上一般会失败:

fail

这是你观察到的。

0相关情况偶然起作用,因为在这种情况下c只是身份函数:

dCopula(c(runif(1), runif(1)), normalCopula(0))
#[1] 1

我不确定是否可以对copula进行适当的规范化以挽救非零相关情况。