Usando a decomposição de valor singular para calcular a matriz de covariância de variância a partir do modelo de regressão linear

9

Eu tenho uma matriz de projeto de p regressores, n observações e estou tentando calcular a matriz de variância-covariância da amostra dos parâmetros. Eu estou tentando calcular diretamente usando svd.

Estou usando R, quando tomo svd da matriz de projeto, recebo três componentes: uma matriz que é , uma matriz que é (presumivelmente valores próprios) e uma matriz que é . Eu diagonalizei , tornando-o uma matriz com zeros nas diagonais externas.Un×pD1×3V3×3D3×3

Supostamente, a fórmula da covariância é: , no entanto, a matriz não corresponde, nem é nem perto da função incorporada de R ,. Alguém tem algum conselho / referência? Admito que sou um pouco não qualificado nessa área.VD2Vvcov

Vai
fonte

Respostas:

15

Primeiro, lembre-se de que, sob premissas de normalidade multivariada do modelo de regressão linear, temos que

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

Agora, se , onde o lado direito é a SVD de X, então temos que . Portanto, X=UDVTXTX=VDUTUDV=VD2VT

(XTX)1=VD2VT.

Ainda estamos perdendo a estimativa da variação, que é

σ^2=1np(yTyβ^TXTy).

Embora eu não tenho verificado, espero vcov retornos .σ^2VD2VT

Nota: Você escreveu , que é , mas precisamos do inverso para a matriz de variância-covariância. Observe também que em , para fazer esse cálculo, você precisa fazerVD2VTXTXR

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

observando que para multiplicação de matrizes usamos em %*%vez de apenas *. var.estacima é a estimativa da variação do ruído.

(Além disso, fiz as suposições de que é de classificação completa e toda parte. Se esse não for o caso, você precisará fazer pequenas modificações no que foi dito acima.)Xnp

cardeal
fonte
@ Will, bom. Ainda bem que funcionou. Você pode aceitar a resposta então. Saudações.
cardeal
Eu tentei a equação, mas isso não funciona muito bem. stats.stackexchange.com/questions/195379/…
HelloWorld