2016-04-26 2 views
22

Я порождаю матрицу вероятностей из двумерной гауссовой связки с маркерами пуассонов. Я не могу понять, почему вероятности не прибавляются к 1, но немного больше. Вот код:Вероятности в копуле не суммируются до 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 

EDIT: Кажется, что эта проблема присутствует только тогда, когда параметр param (корреляция) отличается от 0.

+2

Не знаете, почему они будут суммировать одно? Если вы сделаете то же самое с простым нормальным распределением 'sum (dnorm (c (-0.1,0,0.1))), которое не будет равно единице. Я что-то упустил? – rbm

+3

Нормальное распределение непрерывно, поэтому плотность явно не суммируется с 1. Но для дискретного распределения сумма плотности всех результатов должна быть равна 1. – adaien

+1

Есть ли вероятность того, что у вас есть округление, влияющее на окончательная сумма введена в вашем цикле? – sconfluentus

ответ

6

Это то, что делает dMvdc:

distribution

Здесь c - плотность вашей связки, fi - плотность вероятности по вашему выбору (в данном случае dpois) и Fi - соответствующие cdf (в данном случае ppois).

Для этого, чтобы представить действительное распределение вероятностей, т.е. интегрироваться в 1, вы должны быть в состоянии сделать окончательную замену ниже, что требует непрерывного распределения вероятностей:

finalformula

Если вы используете дискретным PDF (через Дирак дельты):

dirac

выше, как правило, не в состоянии:

fail

Это то, что вы наблюдали.

0 корреляционного случай работает случайно, так как в этом случае c просто функция тождества:

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

Я не уверен, если копула может быть нормализована соответствующим образом, чтобы спасти корреляции случая ненулевых.

+0

Я думаю, что 'pois' отлично воспринимается как аргумент, действительно, имитируя из пуассона, дает правильные результаты. – adaien

+0

Да, это принято в качестве аргумента * с предположением *, что' dpois' и 'qpois 'представляют собой непрерывное распределение. 'mvdc' не проверяет, что делают эти функции, он просто их использует. – eddi

+0

@adiana Я добавил разъяснение – eddi