¿Qué es la matriz Hat y los apalancamientos en la regresión múltiple clásica? ¿Cuáles son sus funciones? ¿Y por qué se utilizan?
Por favor, explíquelas o dé referencias de libros/artículos satisfactorios para entenderlas.
¿Qué es la matriz Hat y los apalancamientos en la regresión múltiple clásica? ¿Cuáles son sus funciones? ¿Y por qué se utilizan?
Por favor, explíquelas o dé referencias de libros/artículos satisfactorios para entenderlas.
La matriz del sombrero, $\bf H$ es la matriz de proyección que expresa los valores de las observaciones en la variable independiente, $\bf y$ en términos de las combinaciones lineales de los vectores columna de la matriz del modelo, $\bf X$ que contiene las observaciones de cada una de las múltiples variables sobre las que se realiza la regresión.
Naturalmente, $\bf y$ normalmente no se encuentra en el espacio de columnas de $\bf X$ y habrá una diferencia entre esta proyección, $\bf \hat Y$ y los valores reales de $\bf Y$ . Esta diferencia es el residuo o $\bf \varepsilon=Y-X\beta$ :
Los coeficientes estimados, $\bf \hat\beta_i$ se entienden geométricamente como la combinación lineal de los vectores columna (observaciones sobre las variables $\bf x_i$ ) necesaria para producir el vector proyectado $\bf \hat Y$ . Tenemos que $\bf H\,Y = \hat Y$ De ahí la mnemotecnia, "la H pone el sombrero en la y".
La matriz del sombrero se calcula como: $\bf H = X (X^TX)^{-1}X^T$ .
Y la estimación $\bf \hat\beta_i$ los coeficientes se calcularán naturalmente como $\bf (X^TX)^{-1}X^T$ .
Cada punto del conjunto de datos intenta tirar de la línea de mínimos cuadrados ordinarios (OLS) hacia sí mismo. Sin embargo, los puntos más alejados en el extremo de los valores del regresor tendrán más influencia. Este es un ejemplo de un punto extremadamente asintótico (en rojo) que realmente aleja la línea de regresión de lo que sería un ajuste más lógico:
Entonces, ¿dónde está la conexión entre estos dos conceptos? El puntuación de apalancamiento de una fila u observación concreta del conjunto de datos se encontrará en la entrada correspondiente de la diagonal de la matriz del sombrero. Así, para la observación $i$ la puntuación de apalancamiento se encontrará en $\bf H_{ii}$ . Esta entrada en la matriz del sombrero tendrá una influencia directa en la forma de entrada $y_i$ tendrá como resultado $\hat y_i$ ( alto aprovechamiento del $i\text{-th}$ observación $y_i$ para determinar su propio valor de predicción $\hat y_i$ ):
Como la matriz del sombrero es una matriz de proyección, su los valores propios son $0$ y $1$ . Se deduce entonces que la traza (suma de elementos diagonales - en este caso suma de $1$ ') será el rango del espacio de columnas, mientras que habrá tantos ceros como la dimensión del espacio nulo. Por lo tanto, los valores de la diagonal de la matriz sombrero serán menores que uno (traza = suma de valores propios), y se considerará que una entrada tiene un alto apalancamiento si $>2\sum_{i=1}^{n}h_{ii}/n$ con $n$ siendo el número de filas.
El apalancamiento de un punto de datos atípico en la matriz del modelo también puede calcularse manualmente como uno menos la relación del residuo para el atípico cuando se incluye el atípico real en el modelo OLS sobre el residuo para el mismo punto cuando se calcula la curva ajustada sin incluir la fila correspondiente al atípico: $$Leverage = 1-\frac{\text{residual OLS with outlier}}{\text{residual OLS without outlier}}$$ En R la función hatvalues()
devuelve estos valores para cada punto.
Utilizando el primer punto de datos del conjunto de datos {mtcars}
en 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
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.