¿Probar la relación entre la distancia de Mahalanobis y el apalancamiento?


12

He visto fórmulas en Wikipedia. que relacionan la distancia y el apalancamiento de Mahalanobis:

La distancia de Mahalanobis está estrechamente relacionada con la estadística de apalancamiento, , pero tiene una escala diferente:h

D2=(N1)(h1N).

En un artículo vinculado , Wikipedia describe en estos términos:h

En el modelo de regresión lineal, la puntuación de apalancamiento para la unidad de datos se define como: el elemento diagonal de la matriz de sombreros , donde denota la transposición de la matriz.ith

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

No puedo encontrar una prueba en ningún lado. Traté de comenzar con las definiciones pero no puedo hacer ningún progreso. ¿Alguien puede dar alguna pista?

Respuestas:


11

¿Mi descripción de la distancia de Mahalanobis en la explicación de abajo a arriba de la distancia de Mahalanobis? incluye dos resultados clave:

  1. Por definición, no cambia cuando los regresores se desplazan uniformemente.

  2. La distancia al cuadrado de Mahalanobis entre los vectores e viene dada por donde es la covarianza de los datos.xy

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

(1) nos permite asumir que los medios de los regresores son todos cero. Queda por calcular . Sin embargo, para que la afirmación sea cierta, necesitamos agregar una suposición más:hi

El modelo debe incluir una intercepción.

Teniendo esto en cuenta, deje que haya regresores datos, escribiendo el valor del regresor para la observación como . Deje el vector columna de estos valores para regresor escribirse y el vector fila de estos valores para la observación escribirse . Entonces la matriz modelo esk0njixijnjx,jkixi

X=(1x11x1k1x21x2k1xn1xnk)

y, por definición, la matriz del sombrero es

H=X(XX)1X,

de donde la entrada a lo largo de la diagonal esi

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

No tiene nada más que resolver esa matriz inversa inversa, pero en virtud del primer resultado clave, es fácil, especialmente cuando lo escribimos en forma de matriz de bloque:

XX=n(100C)

donde y0=(0,0,,0)

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

(He escrito para la matriz de covarianza de muestra de los regresores). Debido a que esta es una diagonal de bloque, su inverso se puede encontrar simplemente invirtiendo los bloques:Σ

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

De la definición obtenemos(1)

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

Resolviendo para la longitud cuadrada de Mahalanobis produceDi2=D2(xi,0)

Di2=(n1)(hi1n),

QED .

Mirando hacia atrás, es posible distinguir el término aditivo a la presencia de una intercepción, que introdujo la columna de unos en la matriz de modelo . El término multiplicativo apareció después de suponer que la distancia de Mahalanobis se calcularía utilizando la estimación de covarianza de muestra (que divide las sumas de cuadrados y productos por ) en lugar de la matriz de covarianza de los datos (que divide la suma de cuadrados y productos por ).1/nXn1n1n


El valor principal de este análisis es el de impartir una interpretación geométrica de la palanca, que mide la cantidad de un cambio unitario en la respuesta a la observación va a cambiar el valor ajustado en el que la observación: observaciones de gran influencia son a grandes distancias de Mahalanobis desde el centroide de los regresores, exactamente como una palanca mecánicamente eficiente opera a una gran distancia de su punto de apoyo.i


Código R para mostrar que la relación tiene:

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

Excelente respuesta, muy completa con rigor e intuición. ¡Salud!
cgrudz

Gracias por la publicación @whuber! Para verificar la cordura, aquí hay un código R para mostrar que la relación realmente es válida: 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 No pensé que necesitaba un control de cordura, pero gracias por el código. :-) He realizado modificaciones para aclararlo un poco y su salida.
whuber

1
@whuber, quería un ejemplo que muestre cómo hacer que funcione la igualdad (dejándome claro que entendí bien las suposiciones). También he extendido la entrada Wiki relevante: en.wikipedia.org/wiki/… (siéntase libre de gastar allí también, como mejor le parezca :))
Tal Galili
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.