Matrice di transizione: discreta -> Tempo continuo


8

Ho il codice corrispondente a Tauchen (1986) (equivalente di Python di questo ), che genera un'approssimazione discreta di un processo di tempo discreto AR (1).

Ad esempio, se si imposta la dimensione della griglia su 3, si ottiene un vettore di produttività

[A_1, A_2, A_3,]

e una matrice di probabilità di transizione

A_11, A_12, A_13
A_21, A_22, A_23
A_31, A_32, A_33

Dove riga i, colonna jti dà la probabilità di passare da ia j, e soddisfa che la somma di ogni riga è approssimativamente una.

Mi chiedo come posso trasformarlo in un equivalente di tempo continuo della matrice di transizione; un insieme di probabilità di poisson che controllano le portate tra gli stati.

Tutto ciò che ricordo a questo proposito è che possiamo ottenere l'approssimazione lineare alle probabilità di poisson usando

Prob(ij)=limΔ0exp(λijΔ)1λijΔ

Ma non riesco a vedere come questo mi aiuti a trasformare quella precedente matrice in λ s ... Non vedo l'ora di dare qualche suggerimento.

Risposte:


6

Supponiamo che sia una matrice delle velocità di transizione di Poisson, dove per indica la velocità con cui lo stato passa allo stato , e indica la velocità a quale stato passi a tutti gli altri stati. Ogni riga di somma a 0.Bn×nBij0ijijBii0iB

Quindi se indica la distribuzione di probabilità al tempo , per definizione di abbiamo l'ODE Sappiamo come appare la soluzione a questo tipo di ODE: , dove è la matrice esponenziale di . Quindi, se vogliamo per generare il Markov transizione di matrice dopo , abbiamo bisogno di avere .p(t)tB

p˙(t)=Bp(t)
p(t)=eBtp(0)eBtBtBAt=1eB=A

In linea di principio, per ottenere , occorre invertire la matrice esponenziale, prendendo il logaritmo matrice di . Il problema è che ogni matrice ha molti logaritmi a matrice - il logaritmo nello spazio complesso unidimensionale ha infiniti rami, e questo è aggravato quando parliamo di matrici nello spazio -dimensionale. La maggior parte di questi logaritmi non saranno soddisfacenti matrici di transizione di Poisson: forse non saranno reali o le voci non avranno i segni giusti. Tuttavia è possibile che più di uno sarà: in alcuni casi c'è più di un Poisson corrispondente a un Markov , così come in alcuni casi non c'è PoissonBAnBABcorrispondente ad . È disordinato.A

Fortunatamente, c'è una situazione in cui la vita è relativamente semplice e quasi sicuramente include il tuo caso personale: quando tutti gli autovalori di sono reali positivi e distintiA . In questo caso, esiste un solo logaritmo di che sarà reale ed è facile da calcolare: basta diagonalizzare la matrice come e prendere il vero logaritmo degli autovalori, ottenendo , dove . In effetti, non c'è bisogno di farlo da soli: se si utilizza il comando in Matlab (presumibilmente Python troppo), che vi darà proprio questo .AA=VΣV1B=VΩV1ωii=log(σii)logm(A)B

Dato questo , tutto ciò che devi fare è verificare che sia effettivamente una matrice di Poisson. Il primo requisito, che tutte le righe si sommano a zero, viene soddisfatto automaticamente a causa della costruzione di ** Il secondo requisito, che gli elementi diagonali sono negativi e gli elementi fuori diagonale sono positivi, non sempre tiene (penso ), ma è facile per te controllare.BB

Per vederlo in azione, prenderò in considerazione un per un processo di Markov a 3 stati che ricorda un AR discretizzato (1). Ora, se in Matlab, I get Questa è davvero una matrice di transizione Poisson valida, poiché possiamo facilmente verificare che le righe si sommano a zero e hanno i segni giusti - quindi questa è la nostra risposta.A

A=(0.50.40.10.20.60.20.10.40.5)
B=logm(A)
B=(0.860.800.060.400.800.400.060.800.86)

Il caso con autovalori positivi è piuttosto importante, dal momento che abbraccia tutti i casi in cui non vi è alcun tipo di comportamento oscillatorio nella catena di Markov (che richiederebbe autovalori negativi o complessi), presumibilmente includendo il tuo AR discretizzato (1).

Più in generale, il comando su Matlab ci darà il logaritmo della matrice principale , un analogo del logaritmo scalare principale che prende tutti gli autovalori per avere una parte immaginaria tra e . Il problema è che questo non è necessariamente il logaritmo che vogliamo, e cercando in essa si potrebbe perdere una Poisson che fa generare . (Ecco perché il caso di autovalore positivo, in cui non dovevamo preoccuparci di questo, è stato così bello.) Tuttavia, anche in questi altri casi non può far male provare a vedere se funziona.logmππBA

A proposito, questo problema di vedere se esiste una che genera una matrice Markov è stato ampiamente studiato. Si chiama problema di incorporabilità : vedi una panoramica e riferimenti in questo eccellente articolo del sondaggio di Davies . Non sono un esperto di aspetti tecnici del problema, comunque; questa risposta si basa più sulla mia esperienza e intuizione hacker.BA

Mi sento obbligato a chiudere distaccando il commento di ecksc e dicendo che potrebbero esserci modi migliori e più diretti per convertire un AR (1) discretamente adattato in un processo a tempo continuo a stati finiti - piuttosto che prendere semplicemente la matrice ottenuta con il metodo Tauchen e rendendolo continuo. Ma non so personalmente quale sia il modo migliore!


** Spiegazione (anche se sono arrugginito): ha un unico autovalore di Perron-Frobenius pari a 1, e poiché è stocastico, il giusto autovettore di questo autovalore è il vettore unitario . Questo è ancora l'autovettore giusto, ora con un autovalore di 0, quando prendiamo il logaritmo della matrice.AAe


2

Non posso commentare, o prima chiederei ulteriori dettagli. Se stai cercando di convertire un processo AR (1) adattato a una serie temporale discreta in un processo temporale continuo, ho trovato una risorsa pertinente qui a pagina 4.

I calcoli vengono forniti per stimare i coefficienti di un processo CAR (2) da un processo AR (2), ma ovviamente è possibile sostituire uno 0 con il secondo coefficiente per ottenere la conversione.

Se stai cercando di convertire un tempo discreto Markov Chain in tempo continuo, sarà più complicato e dovrò fare ancora qualche lettura prima di poter dare più aiuto. :) Nel frattempo, ecco un buon materiale di lettura che ho trovato riguardo alle catene di Markov a tempo continuo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.