【问题标题】:Probabilities in copula doesn't sum up to 1copula 中的概率总和不等于 1
【发布时间】:2016-05-06 04:27:33
【问题描述】:

我正在从具有泊松边际的二元高斯 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?如果您对简单的正态分布 sum(dnorm(c(-0.1,0,0.1))) 执行相同操作,则总和也不会为 1。我在这里错过了什么吗?
  • 正态分布是连续的,所以密度显然不会为1。但是对于离散分布,所有结果的密度之和需要和为1。
  • 四舍五入是否有可能影响循环中引入的最终总和?
  • 我不这么认为,我有这个问题只是当相关性不为零时。当为零时,总和正好是一

标签: r


【解决方案1】:

dMvdc 就是这样做的:

这里 是您的 copula 的密度, 是您选择的概率密度(在本例中为 dpois), 是相应的 cdf(在本例中为 ppois)。

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

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

以上一般都会失败:

这是你观察到的。

0 相关情况意外地起作用,因为在那种情况下 只是恒等函数:

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

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

【讨论】:

  • 我认为pois 被完全接受为论据,确实从泊松模拟给出了正确的结果
  • 是的,它被接受为一个参数,假设dpoisqpois 代表一个连续分布。 mvdc 不检查这些函数的作用,它只是使用它们。
  • @adiana 我添加了一些说明
  • 有没有办法使用带有离散边缘的 copula?
  • 我的意思是,如果我规范化 m,边际不再是泊松。因此,如果您希望 m 总和为 1 但您没有泊松边际,则该技巧会有所帮助
猜你喜欢
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 1970-01-01
相关资源
最近更新 更多