2016-04-26 6 views
22

Ich erzeuge eine Matrix von Wahrscheinlichkeiten von einer bivariablen Gaussian Copula mit poisson marginals. Ich kann nicht herausfinden, warum Wahrscheinlichkeiten nicht zu 1, sondern zu etwas mehr hinzufügen. Hier ist der Code:Wahrscheinlichkeiten in Copula summieren sich nicht zu 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: Es scheint, dass dieses Problem nur dann vorliegt, wenn die param Parameter (Korrelation) verschieden von 0.

+2

Nicht sicher, warum sie zu einem summieren würden? Wenn Sie das Gleiche mit der einfachen Normalverteilung 'sum (dnorm (c (-0,1,0,0,1))) tun, wird das auch nicht zu eins addiert. Fehle ich hier etwas? – rbm

+3

Die Normalverteilung ist kontinuierlich, also summiert sich die Dichte eindeutig nicht zu 1. Aber für eine diskrete Verteilung muss die Summe der Dichte aller Ergebnisse zu 1 summieren. – adaien

+1

Gibt es eine Chance, dass Sie die Rundung beeinflussen endgültige Summe in Ihrer Schleife eingeführt? – sconfluentus

Antwort

6

Dies ist, was dMvdc tut:

distribution

Hier ist c die Dichte Ihrer Kopula, fi sind die Wahrscheinlichkeitsdichten Ihrer Wahl (in diesem Fall dpois) und Fi sind die entsprechenden CDFs (in diesem Fall ppois).

Für diese eine gültige Wahrscheinlichkeitsverteilung darstellen, dh auf 1 zu integrieren, müssen Sie unten die endgültige Substitution tun zu können, die Verteilungen kontinuierliche Wahrscheinlichkeit erfordert:

finalformula

Wenn Sie diskret verwenden pDF-Dateien (über Dirac Deltas):

dirac

die oben wird in der Regel fehlschlagen:

fail

was Sie beobachtet haben.

Der 0 Korrelation Fall arbeitet zufällig, weil in diesem Fall c einfach die Funktion Identität ist:

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

Ich bin nicht sicher, ob der Copula in geeigneter Weise normiert werden, kann den Nicht-Null-Korrelation Fall zu retten.

+0

Ich denke, 'Pois' ist perfekt als Argument akzeptiert, in der Tat die Simulation von einem Poisson gibt korrekte Ergebnisse – adaien

+0

Ja, es ist als Argument akzeptiert, * mit der Annahme * dass' dpois' und 'qpois 'repräsentieren eine kontinuierliche Verteilung. 'mvdc' überprüft nicht, was diese Funktionen tun, es benutzt sie nur. – eddi

+0

@adiana Ich habe einige Erläuterungen hinzugefügt – eddi

Verwandte Themen