Matrice varianza-covarianza degli errori nella regressione lineare


12

Come viene in pratica calcolata la matrice di errori var / cov mediante pacchetti di analisi statistiche?

Questa idea mi è chiara in teoria. Ma non in pratica. Voglio dire, se ho un vettore di variabili casuali , capisco che alla matrice varianza / covarianza Σ verrà dato il prodotto esterno della devianza-dal-the- vettori medi: Σ = E [ ( X - E ( X ) ) ( X - E ( X ) ) ] .X=(X1,X2,...,Xn)ΣΣ=E[(X-E(X))(X-E(X))]

Ma quando ho un campione, gli errori delle mie osservazioni non sono variabili casuali. O meglio, lo sono, ma solo se prendo un numero di campioni identici dalla stessa popolazione. Altrimenti, vengono dati. Quindi, ancora una volta la mia domanda è: come può un pacchetto statistico produrre una matrice var / cov a partire da un elenco di osservazioni (cioè un campione) fornite dal ricercatore?


Gli errori delle tue osservazioni sono funzione di variabili casuali (le y) e sono quindi a loro volta casuali. In base alla sola X, non vengono dati.
user603

1
Sì, sono pienamente d'accordo. Ma quello che dici funziona in teoria. Se traggo, per esempio, 100 campioni casuali di dimensioni identiche dalla stessa popolazione, ogni errore di osservazione sarà una variabile casuale con (0, sigma ^ 2). E se invece disegnassi solo un campione? In tal caso, la media dell'errore di ciascuna osservazione è l'errore stesso. È chiaro cosa sto dicendo? Quindi, quello che sto cercando di capire è, come fa un pacchetto come Stata a calcolare la matrice varianza-covarianza usando solo un campione prelevato dalla popolazione?
Riccardo,

Risposte:


7

La matrice di covarianza per un modello del tipo viene solitamente calcolata come ( X t X ) - 1 σ 2y=Xβ+ε

(XtX)-1σ2d
dove è la somma dei quadrati dei residui, σ 2 = Σ i ( y i - X i β ) 2 e D è il gradi di libertà (tipicamente il numero di osservazioni meno il numero di parametri).σ2σ2=Σio(yio-Xioβ^)2d

Per errori standard robusti o raggruppati, il prodotto viene leggermente modificato. Esistono anche altri modi per calcolare la matrice di covarianza, ad esempio come suggerito dalle aspettative dei prodotti esterni.XtX


3
  1. Stima OLS della varianza dell'errore , :σ2

S2=ε^ε^n-p

Questo è incluso in Regressione pratica e Anova usando R di Julian J. Faraway, pagina 21 .

Esempio di calcolo in R, sulla base di modello lineare di miglia per gallone regrediti su più specifiche modello di auto inclusi nel mtcarsdatabase: ols = lm(mpg ~ disp + drat + wt, mtcars). Questi sono i calcoli manuali e l'output della lm()funzione:

> rdf = nrow(X) - ncol(X)                    # Residual degrees of freedom
> s.sq = as.vector((t(ols$residuals) %*% ols$residuals) / rdf) 
>                                            # s square (OLS estimate of sigma square)
> (sigma = sqrt(s.sq))                       # Residual standar error
[1] 2.950507
> summary(ols)

Call:
lm(formula = mpg ~ disp + drat + wt, data = mtcars)
...
Residual standard error: 2.951 on 28 degrees of freedom
  1. β^

Vun'r[β^|X]=σ2(XX)-1

stimato come nella pagina 8 di questo documento online come

Vun'r^[β^|X]=S2(XX)-1
> X = model.matrix(ols)                             # Model matrix X
> XtX = t(X) %*% X                                  # X transpose X
> Sigma = solve(XtX) * s.sq                         # Variance - covariance matrix
> all.equal(Sigma, vcov(ols))                       # Same as built-in formula
[1] TRUE
> sqrt(diag(Sigma))                                 # Calculated Std. Errors of coef's
(Intercept)        disp        drat          wt 
7.099791769 0.009578313 1.455050731 1.217156605 
> summary(ols)[[4]][,2]                             # Output of lm() function
(Intercept)        disp        drat          wt 
7.099791769 0.009578313 1.455050731 1.217156605 

2

Con regressione lineare stiamo adattando un modello . Y è la variabile dipendente, le X sono le variabili predittive (esplicative). Utilizziamo i dati forniti a noi (il set di formazione o il campione) per stimare la popolazioneY=β*X+εYXβXY


Ciao Rajiv, grazie per la correzione. Quindi, puoi spiegare come Stata (o qualsiasi altro pacchetto di statistiche), a partire da Y (e epsilon), riesca a derivare la matrice varianza-covarianza Sigma?
Riccardo

calcolando ee^e^'

Accetto con l'utente603. Consultare la pagina 21 di cran.r-project.org/doc/contrib/Faraway-PRA.pdf . Questo si basa su R ma include una buona discussione della teoria alla base della regressione lineare.
Rajiv Sambasivan,

Ciao ad entrambi, grazie innanzitutto. Sono anche d'accordo con te, user603, e mi aspettavo questa risposta. Ma se la matrice var / cov viene calcolata calcolando il prodotto esterno dei vettori di errore, ciò significa che il cov tra i componenti dell'errore nella maggior parte dei casi non sarà zero come ipotizzarebbe l'ipotesi di indipendenza. Giusto? Questo è ciò su cui ruota il mio dubbio. Rajiv, ho cercato la buona guida che hai suggerito ma non sono riuscito a trovare una risposta. Grazie in anticipo per qualsiasi risposta futura.
Riccardo,
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.