我正在从具有泊松边缘的二元高斯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不同时才会出现此问题。
答案 0 :(得分:5)
这是dMvdc
的作用:
此处是您的copula密度,是您选择的概率密度(在本例中为dpois
),而是相应的cdf&# 39; s(在这种情况下为ppois
)。
为了表示有效的概率分布,即积分为1,您需要能够在下面进行最终替换,这需要连续的概率分布:
如果您使用离散的pdf(通过Dirac deltas):
以上一般会失败:
这是你观察到的。
0相关情况偶然起作用,因为在这种情况下只是身份函数:
dCopula(c(runif(1), runif(1)), normalCopula(0))
#[1] 1
我不确定是否可以对copula进行适当的规范化以挽救非零相关情况。