Dimostrare la relazione tra distanza Mahalanobis e leva?


12

Ho visto le formule su Wikipedia. che riguardano la distanza e la leva di Mahalanobis:

La distanza di Mahalanobis è strettamente correlata alla statistica della leva finanziaria, h , ma ha una scala diversa:

D2=(N1)(h1N).

In un articolo collegato , Wikipedia descrive h in questi termini:

Nel modello di regressione lineare, il punteggio di leva per l' unità di dati ith è definito come:

hii=(H)ii,
l' elemento diagonale ith della matrice cappello H=X(XX)1X , dove indica la trasposizione della matrice.

Non riesco a trovare una prova da nessuna parte. Ho provato a partire dalle definizioni ma non posso fare alcun progresso. Qualcuno può dare qualche suggerimento?

Risposte:


11

La mia descrizione della distanza di Mahalanobis da fondo a cima spiegazione della distanza di Mahalanobis? include due risultati chiave:

  1. Per definizione, non cambia quando i regressori vengono spostati uniformemente.

  2. Il quadrato Mahalanobis distanza fra vettori x ed y è dato da

    D2(x,y)=(xy)Σ1(xy)
    dove Σ è la covarianza dei dati.

(1) ci consente di assumere che i mezzi dei regressori siano tutti zero. Resta da calcolare hi . Tuttavia, affinché l'affermazione sia vera, dobbiamo aggiungere un'altra ipotesi:

Il modello deve includere un'intercettazione.

Tenendo conto di ciò, lascia che ci siano k0 regressori e n dati, scrivendo il valore del regressore j per l'osservazione i come xij . Lascia che il vettore di colonna di questi n valori per il regressore j sia scritto x,j e il vettore di riga di questi valori k per l'osservazione i sia scritto xi . Quindi la matrice del modello è

X=(1x11x1k1x21x2k1xn1xnk)

e, per definizione, la matrice del cappello è

H=X(XX)1X,

i

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

Non c'è nient'altro che elaborare l'inverso della matrice centrale, ma in virtù del primo risultato chiave, è facile, specialmente quando lo scriviamo in forma di matrice a blocchi:

XX=n(100C)

0=(0,0,,0)

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

Σ

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

(1)

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

Di2=D2(xi,0)

Di2=(n1)(hi1n),

QED .

1/nXn1n1n


i


Codice R per mostrare che la relazione contiene effettivamente:

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))

Risposta eccellente, molto ben arrotondata con rigore e intuizione. Saluti!
cgrudz,

Grazie per il post @whuber! Per il controllo della sanità mentale, ecco il codice R per mostrare che la relazione contiene effettivamente: 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 Non pensavo di aver bisogno di un controllo di integrità - ma grazie per il codice. :-) Ho apportato modifiche per chiarire un po 'e il suo output.
whuber

1
@whuber, volevo un esempio che mostra come far funzionare l'uguaglianza (chiarendo che ho capito bene le ipotesi). Ho anche esteso la voce Wiki pertinente: en.wikipedia.org/wiki/… (sentiti libero di spendere anche lì, come ritieni opportuno :))
Tal Galili,
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.