Utilizzo della decomposizione del valore singolare per calcolare la matrice di covarianza della varianza dal modello di regressione lineare


9

Ho una matrice di progettazione di regressori p, n osservazioni e sto cercando di calcolare la matrice di varianza-covarianza del campione dei parametri. Sto provando a calcolarlo direttamente usando svd.

Sto usando R, quando prendo svd della matrice di design, ottengo tre componenti: una matrice che è n × p , una matrice D che è 1 × 3 (presumibilmente autovalori) e una matrice V che è 3 × 3 . Ho diagonalizzato la D , rendendola una matrice 3 × 3 con 0 nelle diagonali fuori.Un×pD1×3V3×3D3×3

Presumibilmente, la formula per covarianza è: , tuttavia, la matrice non corrisponde, né è anche vicino a R funzione incorporata . Qualcuno ha qualche consiglio / referenze? Ammetto di essere un po 'poco esperto in questo settore.VD2Vvcov

Risposte:


15

In primo luogo, ricordare che, in ipotesi di normalità multivariata del modello di regressione lineare, abbiamo che β ~ N ( β , σ 2 ( X T X ) - 1 ) .

β^N(β,σ2(XTX)1).

Ora, se dove il lato destro è lo SVD di X, allora otteniamo che X T X = V D U T U D V = V D 2 V T . Quindi, ( X T X ) - 1 = V D - 2 V T .X=UDVTXTX=VDUTUDV=VD2VT

(XTX)-1=VD-2VT.

Stiamo ancora manca la stima della varianza, che è σ 2 = 1

σ^2=1n-p(yTy-β^TXTy).

Anche se non ho controllato, si spera vcov rendimenti σ 2 V D - 2 V T .σ^2VD-2VT

Nota: hai scritto , che è X T X , ma abbiamo bisogno dell'inverso per la matrice varianza-covarianza. Si noti inoltre che in R , per eseguire questo calcolo è necessario eseguireVD2VTXTXR

vcov.matrix <- var.est * (v %*% d^(-2) %*% t(v))

osservando che per la moltiplicazione di matrici usiamo %*%invece che semplicemente *. var.estsopra è la stima della varianza del rumore.

(Inoltre, ho formulato le ipotesi che sia a pieno titolo e n p per tutto. In caso contrario, dovrete apportare lievi modifiche a quanto sopra.)Xnp


@Will, good. Sono contento che abbia funzionato. Allora potresti considerare di accettare la risposta. Saluti.
cardinale

Ho provato l'equazione ma questo non funziona del tutto. stats.stackexchange.com/questions/195379/…
HelloWorld,
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.