我正在从具有泊松边缘的二元高斯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
Run Code Online (Sandbox Code Playgroud)
编辑:似乎只有当param参数(相关性)与0不同时才会出现此问题.
这是做什么的dMvdc:
这里 是你的copula的密度,
是你选择的概率密度(在这种情况下
dpois),和是相应的cdf(在这种情况下
ppois).
为了表示有效的概率分布,即要积分到1,您需要能够在下面进行最终替换,这需要连续的概率分布:
如果您使用离散pdf(通过Dirac deltas):
以上一般会失败:
这是你观察到的.
0相关案例意外地起作用,因为在那种情况下 只是身份功能:
dCopula(c(runif(1), runif(1)), normalCopula(0))
#[1] 1
Run Code Online (Sandbox Code Playgroud)
我不确定是否可以对copula进行适当的归一化以挽救非零相关情况.