Domanda

I cercava di programmare l'algoritmo per la CDF per l'multivariata t-distribuzione dopo Genz e Bretz, il pacchetto di riferimento R è mvtnorm.

Quando stavo testando la mia funzione, ho scoperto che i miei numeri non corrispondono. Nel seguente esempio, regolato dal aiuto mvtnorm, la variabile casuale multivariata t ha componenti indipendenti. Quindi l'integrale dovrebbe essere solo il prodotto di 3 probabilità indipendenti

> lower <- -1
> upper <- 3
> df <- 4
> corr <- diag(3)
> delta <- rep(0, 3)
> pmvt(lower=lower, upper=upper, delta=delta, df=df, corr=corr)
[1] 0.5300413
attr(,"error")
[1] 4.321136e-05
attr(,"msg")
[1] "Normal Completion"

L'errore rilevato è 4e-5, l'errore rispetto al prodotto di probabilità indipendenti

> (pt(upper, df) - pt(lower, df))**3
[1] 0.4988254

è

0.5300413 - 0.4988254 = 0.0312159

Mi sto discrepanze nel mio codice rispetto al R mvtnorm per vari esempi in circa la stessa gamma.

Sono per lo più un principiante in R. Allora, che cosa sto facendo di sbagliato o che cosa è sbagliato?

(non sono registrato su una mailing list R-aiuto, così cerco qui.)

UPDATE: Come spiegato pchalasani, le mie statistiche era sbagliato, l'errore nel mio codice è stato in qualche funzione di supporto non nel codice di distribuzione t. Un buon modo di vedere che essere non correlati non implica l'indipendenza, sta guardando la distribuzione condizionata. Ecco le frequenze colonna% * 100 per un bivariato singola variabile casuale (10000 campioni) per quartili (distribuzione condizionata su variabile colonna).

bivariate non correlati variates normali

([[26, 25, 24, 23],
  [24, 23, 24, 25],
  [24, 27, 24, 24],
  [24, 23, 26, 25]])

bivariata non correlate t variates

([[29, 20, 22, 29],
  [20, 31, 28, 21],
  [20, 29, 29, 20],
  [29, 18, 18, 29]])

La distribuzione nella prima e ultima colonna è molto diversa dalle colonne centrali. (Spiacente, nessun codice R, dato che non so come fare in fretta con R).

È stato utile?

Soluzione

Zero Correlazione non implica l'indipendenza, per congiuntamente non gaussiano distribuito variabili casuali!

Vorrei esporre: non v'è alcun bug qui. Le bugie difetto nella tua ipotesi che, quando le variabili casuali multivariata t di Student sono non correlata , ma sono anche indipendente , che sicuramente non è il caso: l'unica classe di distribuzioni multiavariate dove nessuna correlazione implica l'indipendenza, è la distribuzione gaussiana MV.

Per vedere che due variabili casuali non correlate che seguono congiuntamente una distribuzione MV Student-T non sono indipendenti, si consideri il caso di n=2:

require(mvtnorm)
x <- rmvt(100000, sigma = diag(2), df=4, delta = rep(0,2) )

Ora ogni colonna di x rappresenta realizzazioni delle due variabili casuali. Per prima cosa controllare che le loro correlazione è abbastanza piccolo:

> cor(x[,1], x[,2])
[1] -0.003378811

Tuttavia la correlazione dei piazze di x[,1] e x[,2] è alto come 30,4%, vale a dire, sicuramente non nullo , dimostrando che x[,1] e x[,2] non sono statisticamente indipendenti:

> cor(x[,1]^2, x[,2]^2)
[1] 0.3042684
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top