Matrice variance-covariance des erreurs de régression linéaire


12

Comment la matrice d'erreur var / cov est-elle calculée par les progiciels d'analyse statistique dans la pratique?

Cette idée m'est claire en théorie. Mais pas en pratique. Je veux dire, si j'ai un vecteur de variables aléatoires , je comprends que la matrice de variance / covariance recevra le produit externe des vecteurs de déviance par rapport à la moyenne: . Σ Σ = E [ ( X - E ( X ) ) ( X - E ( X ) ) ]X=(X1,X2,,Xn)ΣΣ=E[(XE(X))(XE(X))]

Mais quand j'ai un échantillon, les erreurs de mes observations ne sont pas des variables aléatoires. Ou mieux, ils le sont, mais seulement si je prends un certain nombre d'échantillons identiques de la même population. Sinon, ils sont donnés. Donc, encore une fois ma question est: comment un progiciel statistique peut-il produire une matrice var / cov à partir d'une liste d'observations (c'est-à-dire un échantillon) fournie par le chercheur?


Les erreurs de vos observations sont fonction de variables aléatoires (les y) et sont donc elles-mêmes aléatoires. Conditionnel à X seul, ils ne sont pas donnés.
user603

1
Oui, je suis entièrement d'accord là-dessus. Mais ce que vous dites fonctionne en théorie. Si je tire, disons, 100 échantillons aléatoires de taille identique dans la même population, chaque erreur d'observation sera une variable aléatoire avec (0, sigma ^ 2). Et si, à la place, je ne fais qu'un seul échantillon? Dans ce cas, la moyenne de l'erreur de chaque observation est l'erreur elle-même. Est-ce clair ce que je dis? Donc, ce que j'essaie de comprendre, c'est comment un package comme Stata calcule la matrice variance-covariance en utilisant un seul échantillon tiré de la population?
Riccardo

Réponses:


7

La matrice de covariance d'un modèle de type est généralement calculée comme où est le somme résiduelle des carrés, et est le degré de liberté (généralement le nombre d'observations moins le nombre de paramètres).y=Xβ+ϵ

(XtX)1σ2d
σ2σ2=i(yiXiβ^)2d

Pour les erreurs standard robustes et / ou groupées, le produit est légèrement modifié. Il peut également y avoir d'autres façons de calculer la matrice de covariance, par exemple, comme le suggère l'attente des produits extérieurs.XtX


3
  1. Estimation OLS de la variance d'erreur , :σ2

s2=ε^ε^np

Ceci est inclus dans Practical Regression et Anova using R de Julian J.Faraway, page 21 .

Exemple de calcul dans le R, sur la base du modèle linéaire miles par gallon régressé sur plusieurs caractéristiques de modèle de voiture inclus dans la mtcarsbase de données: ols = lm(mpg ~ disp + drat + wt, mtcars). Ce sont les calculs manuels et la sortie de la lm()fonction:

> 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. Variance - Matrice de covariance des coefficients estimés , :β^

Var[β^X]=σ2(XX)1

estimé à la page 8 de ce document en ligne comme

Var^[β^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

Avec la régression linéaire, nous ajustons un modèle . est la variable dépendante, les sont les variables prédictives (explicatives). Nous utilisons les données qui nous sont fournies (l'ensemble de formation ou l'échantillon) pour estimer les la population . Les ne sont pas considérés comme des variables aléatoires. Les sont aléatoires en raison de la composante d'erreur.Y X β X YY=βX+εYXβXY


Salut Rajiv, merci pour la correction. Alors, pouvez-vous expliquer comment Stata (ou tout autre package de statistiques), à partir de Y (et epsilon), parvient à dériver la matrice de variance-covariance Sigma?
Riccardo

en calculant . e^e^
user603

D'accord avec user603. Veuillez consulter la page 21 de cran.r-project.org/doc/contrib/Faraway-PRA.pdf . Ceci est basé sur R mais inclut une bonne discussion de la théorie derrière la régression linéaire.
Rajiv Sambasivan

Salut à tous les deux, merci tout d'abord. Je suis également d'accord avec vous, user603, et j'attendais cette réponse. Mais si la matrice var / cov est calculée en calculant le produit externe des vecteurs d'erreur, cela signifie que la cov parmi les composants d'erreur dans la plupart des cas ne sera pas nulle comme l'hypothèse d'indépendance l'impliquerait. Droite? C'est autour de cela que mon doute tourne. Rajiv, j'ai examiné le bon guide que vous avez suggéré, mais je n'ai pas trouvé de réponse. Merci d'avance pour toute réponse future.
Riccardo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.