Prouver la relation entre la distance de Mahalanobis et l'effet de levier?

12

J'ai vu des formules sur Wikipédia. qui concernent la distance et l'effet de levier de Mahalanobis:

La distance de Mahalanobis est étroitement liée à la statistique de l'effet de levier, , mais a une échelle différente:h

D2=(N1)(h1N).

Dans un article lié , Wikipedia décrit en ces termes:h

Dans le modèle de régression linéaire, le score de levier pour l' unité de données est défini comme: l' élément diagonal de la matrice de chapeau , où désigne la transposition de la matrice.ith

hii=(H)ii,
ithH=X(XX)1X

Je ne trouve aucune preuve nulle part. J'ai essayé de partir des définitions mais je ne peux faire aucun progrès. N'importe qui peut donner un indice?

dave2d
la source

Réponses:

11

Ma description de la distance de Mahalanobis en bas en haut explication de la distance de Mahalanobis? comprend deux résultats clés:

  1. Par définition, il ne change pas lorsque les régresseurs sont décalés uniformément.

  2. La distance au carré de Mahalanobis entre les vecteurs et est donnée par où est la covariance des données.xy

    D2(x,y)=(xy)Σ1(xy)
    Σ

(1) nous permet de supposer que les moyennes des régresseurs sont toutes nulles. Reste à calculer . Cependant, pour que l'affirmation soit vraie, nous devons ajouter une autre hypothèse:hi

Le modèle doit inclure une interception.

En tenant compte de cela, qu'il y ait régresseurs et données, en écrivant la valeur du régresseur pour l'observation comme . Soit le vecteur colonne de ces valeurs pour le régresseur écrit et le vecteur ligne de ces valeurs pour l'observation être écrit . Ensuite, la matrice du modèle estk0njixijnjx,jkixi

X=(1x11x1k1x21x2k1xn1xnk)

et, par définition, la matrice de chapeau est

H=X(XX)1X,

d'où l'entrée long de la diagonale esti

(1)hi=hii=(1;xi)(XX)1(1;xi).

Il n'y a rien d'autre à faire que de calculer cette matrice centrale inverse - mais en vertu du premier résultat clé, c'est facile, surtout lorsque nous l'écrivons sous forme de matrice de blocs:

XX=n(100C)

où et0=(0,0,,0)

Cjk=1ni=1nxijxik=n1nCov(xj,xk)=n1nΣjk.

(J'ai écrit pour l' exemple de matrice de covariance des régresseurs.) Parce que c'est la diagonale du bloc, son inverse peut être trouvé simplement en inversant les blocs:Σ

(XX)1=1n(100C1)=(1n001n1Σ1).

De la définition on obtient(1)

hi=(1;xi)(1n001n1Σ1)(1;xi)=1n+1n1xiΣ1xi=1n+1n1D2(xi,0).

La résolution de la longueur au carré de Mahalanobis donneDi2=D2(xi,0)

Di2=(n1)(hi1n),

QED .

Avec le recul, on peut tracer le terme additif de la présence d'une interception, qui a introduit la colonne de celles dans la matrice du modèle . Le terme multiplicatif est apparu après avoir supposé que la distance de Mahalanobis serait calculée en utilisant l' estimation de covariance de l' échantillon (qui divise les sommes des carrés et des produits par ) plutôt que la matrice de covariance des données (qui divise la somme des carrés et produits par ).1/nXn1n - 1 nn1n


La valeur principale de cette analyse est de donner une interprétation géométrique à l'effet de levier, qui mesure combien un changement d'unité dans la réponse à l' observation va changer la valeur ajustée à cette observation: observations fort effet de levier sont à grande distance Mahalanobis du centre de gravité des régresseurs, exactement comme un levier mécaniquement efficace fonctionne à une grande distance de son point d'appui.i


Code R pour montrer que la relation est vraie:

x <- mtcars

# Compute Mahalanobis distances
h <- hat(x, intercept = TRUE); names(h) <- rownames(mtcars)
M <- mahalanobis(x, colMeans(x), cov(x))

# Compute D^2 of the question
n <- nrow(x); D2 <- (n-1)*(h - 1/n)

# Compare.
all.equal(M, D2)               # TRUE
print(signif(cbind(M, D2), 3))
whuber
la source
Excellente réponse, très bien arrondie avec rigueur et intuition. À votre santé!
cgrudz
Merci pour le post @whuber! Pour vérifier la santé mentale, voici le code R pour montrer que la relation est vraie: x <- mtcars rownames (x) <- NULL colnames (x) <- NULL n <- nrow (x) h <- hat (x, T) mahalanobis (x, colMeans (x), cov (x)) (n-1) * (h - 1 / n) all.equal (mahalanobis (x, colMeans (x), cov (x)), (n-1 ) * (h - 1 / n))
Tal Galili
1
@Tal, je ne pensais pas avoir besoin d'un examen de santé mentale - mais merci pour le code. :-) J'ai apporté des modifications pour le clarifier un peu et sa sortie.
whuber
1
@whuber, je voulais un exemple qui montre comment faire fonctionner l'égalité (en me faisant comprendre que j'avais les bonnes hypothèses). J'ai également étendu l'entrée Wiki pertinente: en.wikipedia.org/wiki/… (n'hésitez pas à y consacrer aussi, comme bon vous semble :))
Tal Galili