Quest-ce que la matrice de chapeau et exploite dans la régression multiple classique? Quels sont leurs rôles? Et pourquoi les utiliser?
Veuillez les expliquer ou donner des références de livres / articles satisfaisantes pour les comprendre.
Commentaires
- Il y a beaucoup de messages sur ce site mentionnant leffet de levier. Vous pouvez commencer par parcourir certains dentre eux: stats.stackexchange.com/search?q=leverage+
Réponse
La matrice de chapeau, $ \ bf H $ , est la matrice de projection qui exprime les valeurs de les observations dans la variable indépendante, $ \ bf y $ , en termes de combinaisons linéaires des vecteurs colonnes de la matrice modèle, $ \ bf X $ , qui contient les observations pour chacune des multiples variables sur lesquelles vous régressez.
Naturellement, $ \ bf y $ ne se trouvera généralement pas dans lespace des colonnes de $ \ bf X $ et il y aura une différence entre cette projection, $ \ bf \ hat Y $ , et les valeurs réelles de $ \ bf Y $ . Cette différence est le résidu ou $ \ bf \ varepsilon = YX \ beta $ :
Les coefficients estimés, $ \ bf \ hat \ beta_i $ sont géométriquement compris comme la combinaison linéaire des vecteurs de colonnes (observations sur les variables $ \ bf x_i $ ) nécessaires pour produire le vecteur projeté $ \ bf \ hat Y $ . Nous avons ce $ \ bf H \, Y = \ hat Y $ ; doù le mnémonique, " le H met le chapeau sur le y. "
La matrice de chapeau est calculée comme : $ \ bf H = X (X ^ TX) ^ {- 1} X ^ T $ .
Et lestimation $ \ bf \ hat \ beta_i $ les coefficients seront naturellement calculés comme $ \ bf (X ^ TX) ^ {- 1} X ^ T $ .
Chaque point de lensemble de données essaie de tirer la ligne des moindres carrés ordinaires (OLS) vers lui-même. Cependant, les points les plus éloignés à lextrême des valeurs du régresseur auront plus deffet de levier. Voici un exemple de point extrêmement asymptotique (en rouge) qui éloigne vraiment la ligne de régression de ce qui serait un ajustement plus logique:
Alors, où est le lien entre ces deux concepts: Le score de levier dune ligne particulière ou Lobservation dans le jeu de données sera trouvée dans lentrée correspondante dans la diagonale de la matrice de chapeau. Donc pour lobservation $ i $ , le score de levier sera trouvé dans $ \ bf H_ {ii} $ . Cette entrée dans la matrice de chapeau aura une influence directe sur la façon dont lentrée $ y_i $ aboutira à $ \ hat y_i $ (fort effet de levier de lobservation $ i \ text {-th} $ $ y_i $ pour déterminer sa propre valeur de prédiction $ \ hat y_i $ ):
Puisque la matrice de chapeau est une matrice de projection, ses valeurs propres sont $ 0 $ et $ 1 $ . Il sensuit alors que la trace (somme des éléments diagonaux – dans ce cas somme de $ 1 $ « s) sera le rang de lespace de colonne, alors quil » y aura autant de zéros que la dimension de lespace nul. Par conséquent, les valeurs dans la diagonale de la matrice de chapeau seront inférieures à un (trace = somme des valeurs propres), et une entrée sera considérée comme ayant un effet de levier élevé si $ > 2 \ sum_ {i = 1} ^ {n} h_ {ii} / n $ avec $ n $ étant le nombre de lignes.
Leffet de levier dun point de données aberrant dans la matrice du modèle peut également être calculé manuellement comme un moins le rapport du résidu pour la valeur aberrante lorsque la valeur aberrante réelle est incluse dans le modèle OLS résiduel pour le même point lorsque la courbe ajustée est calculée sans inclure la ligne correspondant à la valeur aberrante: $$ Leverage = 1- \ frac {\ text {OLS résiduel avec valeur aberrante}} {\ text {OLS résiduel sans valeur aberrante}} $$ Dans R, la fonction hatvalues()
renvoie ces valeurs pour chaque point.
En utilisant le premier point de données dans lensemble de données {mtcars}
dans R:
fit = lm(mpg ~ wt, mtcars) # OLS including all points X = model.matrix(fit) # X model matrix hat_matrix = X%*%(solve(t(X)%*%X)%*%t(X)) # Hat matrix diag(hat_matrix)[1] # First diagonal point in Hat matrix fitwithout1 = lm(mpg ~ wt, mtcars[-1,]) # OLS excluding first data point. new = data.frame(wt=mtcars[1,"wt"]) # Predicting y hat in this OLS w/o first point. y_hat_without = predict(fitwithout1, newdata=new) # ... here it is. residuals(fit)[1] # The residual when OLS includes data point. lev = 1 - (residuals(fit)[1]/(mtcars[1,"mpg"] - y_hat_without)) # Leverage all.equal(diag(hat_matrix)[1],lev) #TRUE