Come garantire le proprietà della matrice di covarianza quando si adatta il modello normale multivariato utilizzando la massima probabilità?


22

Supponiamo di avere il seguente modello

yi=f(xi,θ)+εi

dove , è un vettore di variabili esplicative, sono i parametri della funzione non lineare e , dove è naturalmente matrice.yiRKxiθfεiN(0,Σ)ΣK×K

L'obiettivo è il solito per stimare e \ Sigma . La scelta ovvia è il metodo della massima verosimiglianza. Probabilità di log per questo modello (supponendo che abbiamo un campione (y_i, x_i), i = 1, ..., n ) sembraθΣ(yi,xi),i=1,...,n

l(θ,Σ)=n2log(2π)n2logdetΣi=1n(yif(xi,θ))Σ1(yf(xi,θ)))

Ora questo sembra semplice, la probabilità di log viene specificata, inserita nei dati e utilizza un algoritmo per l'ottimizzazione non lineare. Il problema è come garantire che Σ sia definito positivo. L'uso ad esempio optimin R (o in qualsiasi altro algoritmo di ottimizzazione non lineare) non mi garantirà che Σ sia definito positivo.

Quindi la domanda è: come garantire che Σ rimanga positivo definito? Vedo due possibili soluzioni:

  1. Rigarametrare Σ come RR dove R è una matrice triangolare superiore o simmetrica. Quindi Σ sarà sempre definito positivo e R può essere vincolato.

  2. Usa la probabilità del profilo. Deriva le formule per θ^(Σ) e Σ^(θ) . Inizia con alcuni θ0 e iterate Σ^j=Σ^(θ^j1) , θ^j=θ^(Σ^j1) fino alla convergenza.

C'è qualche altro modo e che dire di questi 2 approcci, funzioneranno, sono standard? Questo sembra un problema piuttosto standard, ma la ricerca rapida non mi ha dato alcun suggerimento. So che sarebbe anche possibile una stima bayesiana, ma per il momento non vorrei impegnarmi.


Ho lo stesso problema in un algoritmo di Kalman, ma il problema è molto più complicato e non facile da usare con il trucco di Hamilton. Mi chiedo quindi se una cosa più semplice da fare sarebbe semplicemente usare . In questo modo forzo il codice a non dare un errore e non cambio la soluzione. Ciò ha anche il vantaggio di forzare questo termine ad avere lo stesso segno della parte finale della probabilità. Qualche idea? log(detΣ+1)
econ_pipo,

Risposte:


6

Supponendo che nel costruire la matrice di covarianza, ti occupi automaticamente del problema della simmetria, la tua probabilità logaritmica sarà quando non è definita positivamente a causa del termine nel modello giusto? Per evitare un errore numerico se vorrei precalcolare e, se non è positivo, renderebbe uguale la probabilità del log -Inf, altrimenti continua. Devi comunque calcolare il determinante, quindi questo non ti costa alcun calcolo extra. Σlogdet Σdet Σ<0det Σ


5

A quanto pare è possibile utilizzare la massima verosimiglianza del profilo per garantire le proprietà necessarie. Puoi provare che per dato , è massimizzato daθ^l(θ^,Σ)

Σ^=1ni=1nε^iε^i,

dove

ε^i=yif(xi,θ^)

Quindi è possibile dimostrarlo

i=1n(yif(xi,θ^))Σ^1(yf(xi,θ^)))=const,

quindi dobbiamo solo massimizzare

lR(θ,Σ)=n2logdetΣ^.

Naturalmente in questo caso soddisferà tutte le proprietà necessarie. Le prove sono identiche per il caso in cui è lineare, che può essere trovato in Analisi delle serie temporali di JD Hamilton a pagina 295, quindi le ho omesse.Σf


3

Una parametrizzazione alternativa per la matrice di covarianza è in termini di autovalori e angoli "Givens" .λ1,...,λpp(p1)/2θij

Cioè, possiamo scrivere

Σ=GTΛG

dove è ortonormale eG

Λ=diag(λ1,...,λp)

con .λ1...λp0

Nel frattempo, può essere parametrizzato in modo univoco in termini di angoli, , dove e . [1]Gp(p1)/2θiji=1,2,...,p1j=i,...,p1

(dettagli da aggiungere)

[1]: Hoffman, Raffenetti, Ruedenberg. "Generalizzazione degli angoli di Eulero verso le matrici ortogonali N-dimensionali". J. Math. Phys. 13, 528 (1972)


La matrice è in realtà ortogonale, perché è una matrice simmetrica. Questo è l'approccio che stavo per raccomandare - Fondamentalmente equivale a ruotare il vettore e la funzione del modello modo che gli errori siano indipendenti, quindi applicare OLS a ciascuno dei componenti ruotati (penso). GΣyif(xi,θ)
Probislogic

2

Sulla falsariga della soluzione charles.y.zheng, potresti voler modellare , dove Λ è una matrice diagonale e C è una fattorizzazione di Cholesky di un aggiornamento di rango a Λ . Solo allora devi mantenere la diagonale di Λ positivo per mantenere Σ positivo definito. Cioè, dovresti stimare la diagonale di Λ e gli elementi di C invece di stimare Σ .Σ=Λ+CCΛCΛΛΣΛCΣ


Gli elementi sotto la diagonale in queste impostazioni possono essere tutto ciò che desidero purché la diagonale sia positiva? Quando simulate le matrici in questo modo in modo intorpidito, non tutte sono definite positive.
sztal

è una matrice diagonale. Λ
shabbychef,
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.