Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

12. Multicolinealidad, selección de variables y validación

Medir bien la grasa corporal es una molestia. La forma precisa es pesar a una persona bajo el agua y calcular su densidad, lo que requiere un tanque, un técnico y un sujeto cooperativo. La forma barata es una cinta métrica. Así surge una pregunta natural: ¿pueden un puñado de medidas con cinta (cintura, pecho, muslo, muñeca y las demás) predecir el porcentaje de grasa corporal que da el pesaje bajo el agua? Un estudio de 1985 registró ambas cosas para 252 hombres, y ese conjunto de datos, fat.csv, es con el que este capítulo trabaja de principio a fin. (Este es el estudio mayor de 252 hombres con trece medidas, no la tabla de grasa corporal de veinte hombres y tres medidas que conociste para las sumas de cuadrados extra en 8.5 Gráficos de variable agregada; ambos comparten una columna “thigh” pero son datos distintos.)

Hay un plan obvio: hacer la regresión de la grasa corporal sobre las trece medidas y leer los coeficientes. Cuando lo haces, el modelo explica cerca del 75 por ciento de la variación, lo que suena a éxito. Luego miras los coeficientes y algo anda mal. El coeficiente del peso es negativo, como si los hombres más pesados tuvieran menos grasa una vez que fijas las demás medidas. Varios predictores que todos saben que importan salen estadísticamente no significativos. Quita una medida y las otras se tambalean. El problema es que las medidas de cinta miden todas más o menos lo mismo, el tamaño del cuerpo, así que están enredadas entre sí. Figure 1 muestra justo cuán enredadas.

Un mapa de calor de correlaciones de 13 por 13 de los predictores de grasa corporal. La mayoría de las celdas fuera de la diagonal entre las medidas de perímetro (peso, pecho, abdomen, cadera, muslo, rodilla, bíceps) son de rojo intenso, con correlaciones de aproximadamente 0.7 a 0.94, mientras que la edad y la altura son pálidas, casi no correlacionadas con el resto.

Figure 1:Las medidas de perímetro están fuertemente correlacionadas entre sí (peso y cadera correlacionan 0.94, pecho y abdomen 0.92). Predictores tan redundantes llevan casi la misma información, y eso es lo que hace que sus coeficientes individuales sean difíciles de precisar.

Este capítulo trata de convivir con demasiados predictores, la mayoría redundantes. Tres preguntas lo organizan. Primera, ¿cómo diagnosticamos y describimos el daño que causan los predictores correlacionados, usando el factor de inflación de la varianza? Segunda, cuando hay varios modelos sobre la mesa, ¿cómo elegimos, usando criterios como el CpC_p de Mallows y la validación cruzada que premian la predicción y no el mero ajuste? Tercera, ¿qué herramientas modernas (el lasso y la regresión ridge) esquivan todo el problema de selección encogiendo los coeficientes en lugar de eliminarlos? Por el camino conocerás la advertencia más importante de la estadística aplicada: un modelo elegido para ajustar tus datos siempre se verá mejor en esos datos de lo que merece.

12.1 La multicolinealidad y el factor de inflación de la varianza

Intuición

Los capítulos 7 y 8 construyeron una regresión múltiple y leyeron cada coeficiente como una pendiente parcial, el efecto de un predictor con los demás fijos (8.5 Gráficos de variable agregada). Esa lectura suponía calladamente que los predictores llevaban información separada. La viñeta mostró el daño cuando no es así; ahora nombramos la causa, la multicolinealidad (Definición 12.1).

Un poco de ella es inofensiva y normal. Mucha es un problema, porque el modelo no puede distinguir entre los predictores correlacionados. Imagina dos predictores que se mueven casi al unísono, como el peso y el perímetro de la cadera. Los datos muestran qué le pasa a la grasa corporal cuando ambos suben juntos, pero casi no muestran nada sobre qué pasa cuando uno sube y el otro se queda fijo, porque esa combinación apenas ocurre. Así que el modelo no tiene una base firme para repartir el efecto compartido entre ellos. Puede darle al peso un coeficiente positivo grande y a la cadera uno negativo grande, o al revés, y ajustar los datos más o menos igual de bien en cualquier caso. Figure 2 dibuja la escena.

Dos diagramas de dispersión del predictor X2 contra el predictor X1. A la izquierda los puntos llenan una nube redonda, mostrando que los predictores son independientes. A la derecha los puntos yacen casi exactamente a lo largo de una línea diagonal ascendente, mostrando que los predictores son colineales con correlación 0.98, con una nota de que solo la dirección X1 más X2 está bien medida y el reparto entre ellos es casi libre.

Figure 2:Cuando los predictores son independientes (izquierda) los datos fijan cada coeficiente. Cuando son colineales (derecha) solo su suma está bien medida; el reparto en coeficientes separados es casi libre de moverse, y por eso los coeficientes colineales tienen errores estándar enormes.

El factor de inflación de la varianza (Definición 12.2) mide exactamente cuánto se infla la varianza.

El modelo completo, y por qué se portan mal sus coeficientes

Ajusta primero el modelo completo, para que los síntomas sean concretos. La respuesta es brozek, el porcentaje de grasa corporal por la fórmula de Brozek, y los trece predictores son las medidas de cinta y báscula. Recuerda de 4.2 La correlación y la pendiente de regresión que para un solo predictor, R2R^2 es simplemente la correlación al cuadrado; con muchos predictores R2R^2 sigue subiendo a medida que agregas columnas, ayuden o no, así que un R2R^2 alto por sí solo no prueba nada.

Viste una versión pequeña de esto en 8.5 Gráficos de variable agregada, donde una tabla de grasa corporal de veinte hombres tenía una medida de tríceps y una de muslo tan correlacionadas que sus coeficientes se volvieron inestables. Aquí aparece la misma enfermedad a plena escala, con trece predictores enredados en vez de dos. Un vistazo rápido a las correlaciones entre las medidas de tamaño confirma el diagnóstico.

round(cor(fat[, c("weight", "chest", "abdom", "hip", "thigh")]), 3)
       weight chest abdom   hip thigh
weight  1.000 0.894 0.888 0.941 0.869
chest   0.894 1.000 0.916 0.829 0.730
abdom   0.888 0.916 1.000 0.874 0.767
hip     0.941 0.829 0.874 1.000 0.896
thigh   0.869 0.730 0.767 0.896 1.000
print(fat[["weight", "chest", "abdom", "hip", "thigh"]].corr().round(3))
        weight  chest  abdom    hip  thigh
weight   1.000  0.894  0.888  0.941  0.869
chest    0.894  1.000  0.916  0.829  0.730
abdom    0.888  0.916  1.000  0.874  0.767
hip      0.941  0.829  0.874  1.000  0.896
thigh    0.869  0.730  0.767  0.896  1.000

Cada par correlaciona por encima de 0.7, y el peso con la cadera llega a 0.941. Estas columnas son casi duplicados unas de otras.

Fórmula

En palabras: haz la regresión del predictor kk sobre los predictores restantes, ve qué tan bien lo predicen, y VIFk\mathrm{VIF}_k es uno sobre la fracción que sobra. Si XkX_k no se relaciona con los demás, Rk2=0R_k^2 = 0 y VIFk=1\mathrm{VIF}_k = 1. Si los demás explican el 90 por ciento de él, Rk2=0.9R_k^2 = 0.9 y VIFk=10\mathrm{VIF}_k = 10. Una regla práctica común señala VIFk>10\mathrm{VIF}_k > 10 (equivalentemente Rk2>0.9R_k^2 > 0.9) como grave, aunque el corte es una convención, no una ley.

Vale la pena mirar la forma de esa fórmula, porque explica por qué un poco de colinealidad es inofensiva y mucha es un desastre. Figure 3 grafica el VIF contra Rk2R_k^2. La curva es casi plana mientras un predictor es en su mayoría propio, luego se dobla bruscamente hacia arriba a medida que los demás se acercan a reproducirlo. El peso, del cual las otras doce medidas explican el 97 por ciento, se sitúa muy arriba en la parte empinada.

Una curva del factor de inflación de la varianza contra el R cuadrado auxiliar, que sube lentamente desde 1 en R cuadrado 0 y luego se dispara hacia arriba a medida que R cuadrado se acerca a 1. Una línea horizontal punteada marca VIF igual a 10 y una línea vertical de puntos marca R cuadrado igual a 0.9, y las dos se encuentran sobre la curva. Cinco predictores de grasa corporal se grafican como puntos: la edad en R cuadrado 0.56 y VIF 2.2 abajo en la parte plana; pecho, abdomen y cadera agrupados cerca de la línea de advertencia; y el peso en R cuadrado 0.97 muy arriba en la parte empinada en VIF 33.5.

Figure 3:Como el VIF es uno sobre la fracción que sobra 1Rk21 - R_k^2, apenas se mueve mientras un predictor conserva la mayor parte de su propia información, luego explota una vez que los demás predictores casi lo reproducen. Esa pendiente pronunciada es la razón por la que el peso, explicado en un 97 por ciento por el resto, aterriza hasta arriba en VIF 33.5.

El nombre es literal. El VIF es el factor por el cual se multiplica la varianza de bkb_k, en comparación con la varianza que tendría si XkX_k no estuviera correlacionado con los demás predictores:

Var{bk}=σ2Skk(1Rk2)=σ2SkkVIFk,Skk=i=1n(XikXˉk)2.\operatorname{Var}\{b_k\} = \frac{\sigma^2}{S_{kk}\,(1 - R_k^2)} = \frac{\sigma^2}{S_{kk}} \cdot \mathrm{VIF}_k, \qquad S_{kk} = \sum_{i=1}^n (X_{ik} - \bar{X}_k)^2 .

En palabras: la varianza de un coeficiente es el usual σ2/Skk\sigma^2 / S_{kk} (pequeño cuando el predictor está muy disperso) por el factor de inflación. La colinealidad entra solo a través de ese último factor.

Deducción (el VIF a partir de la regresión auxiliar)

Demostración. Fija un predictor XkX_k. Por la construcción de variable agregada de 8.5 Gráficos de variable agregada, el coeficiente de mínimos cuadrados bkb_k es igual a la pendiente de una regresión simple de YY sobre la parte de XkX_k que los demás predictores no explican. Haz concreta esa parte: ejecuta la regresión auxiliar de XkX_k sobre todos los demás predictores, y llama a sus residuos X~ik\tilde{X}_{ik}. Estos residuos son XkX_k con la información de los demás predictores removida.

El resultado de variable agregada dice que bk=iX~ikYi/iX~ik2b_k = \sum_i \tilde{X}_{ik} Y_i / \sum_i \tilde{X}_{ik}^2, una pendiente de regresión simple con los X~ik\tilde{X}_{ik} como predictor. De 2.5 Comportamiento muestral y el teorema de Gauss-Markov, una pendiente de regresión simple kiYi\sum k_i Y_i con pesos ki=X~ik/jX~jk2k_i = \tilde{X}_{ik} / \sum_j \tilde{X}_{jk}^2 tiene varianza σ2iki2=σ2/iX~ik2\sigma^2 \sum_i k_i^2 = \sigma^2 / \sum_i \tilde{X}_{ik}^2. Así que

Var{bk}=σ2iX~ik2.\operatorname{Var}\{b_k\} = \frac{\sigma^2}{\sum_{i} \tilde{X}_{ik}^2} .

Ahora identifica el denominador. La regresión auxiliar tiene suma total de cuadrados i(XikXˉk)2=Skk\sum_i (X_{ik} - \bar{X}_k)^2 = S_{kk} y suma de cuadrados del error iX~ik2\sum_i \tilde{X}_{ik}^2. Por la definición de R2R^2 aplicada a esa regresión auxiliar,

Rk2=1iX~ik2SkkiX~ik2=Skk(1Rk2).R_k^2 = 1 - \frac{\sum_i \tilde{X}_{ik}^2}{S_{kk}} \quad\Longrightarrow\quad \sum_i \tilde{X}_{ik}^2 = S_{kk}\,(1 - R_k^2) .

Sustituye:

Var{bk}=σ2Skk(1Rk2)=σ2Skk11Rk2.\operatorname{Var}\{b_k\} = \frac{\sigma^2}{S_{kk}\,(1 - R_k^2)} = \frac{\sigma^2}{S_{kk}} \cdot \frac{1}{1 - R_k^2} .

El primer factor σ2/Skk\sigma^2 / S_{kk} es lo que sería la varianza si XkX_k estuviera libre de los demás (Rk2=0R_k^2 = 0). El segundo factor 1/(1Rk2)=VIFk1/(1 - R_k^2) = \mathrm{VIF}_k es el precio de la colinealidad. Cuando los demás predictores casi reproducen XkX_k, Rk21R_k^2 \to 1 y la varianza explota. \blacksquare

R y Python

El paquete car de R calcula todos los VIF a la vez. La fórmula de arriba te permite comprobar cualquiera de ellos a mano a partir de una sola regresión auxiliar.

Un gráfico de barras horizontales de los factores de inflación de la varianza para los trece predictores de grasa corporal, ordenados de mayor a menor. El peso (aproximadamente 33.5), la cadera (14.8) y el abdomen (11.8) se extienden más allá de una línea vertical de referencia punteada en VIF igual a 10, mientras que la edad, la altura, el tobillo y el resto quedan muy por debajo de ella.

Figure 4:Factores de inflación de la varianza, ordenados. El peso, la cadera y el abdomen superan la línea de advertencia habitual de VIF = 10, así que sus coeficientes individuales son los menos confiables del modelo.

Remedios

Hay cuatro respuestas honestas a los VIF altos. Primera, no hacer nada, si solo te importa la predicción dentro del rango de los datos: la colinealidad no sesga Y^\hat{Y} ni ensancha mucho su intervalo, así que un modelo predictivo puede llevar predictores redundantes sin peligro. Segunda, quitar predictores: si el peso, la cadera y el abdomen dicen casi lo mismo, conserva el que puedas medir mejor y descarta el resto. Tercera, combinarlos en un solo índice (un promedio, o una componente principal) que capture la señal de tamaño compartida. Cuarta, encoger los coeficientes con regresión ridge (Sección 12.5), que tolera la colinealidad por diseño. Lo que no debes hacer es leer un coeficiente colineal como un efecto causal real y actuar según su signo.

Leer sobre varianza inflada es una cosa; aquí está la misma enfermedad con una perilla, para que decidas por ti mismo cuánta correlación es demasiada.

Qué notar: al subir la correlación, el EE(b1) y el VIF se disparan juntos mientras la SCE del ajuste no se mueve en absoluto, porque los datos todavía fijan la suma de los dos efectos y no el reparto. Prueba a poner la correlación en 0.99 y luego nombrar un valor de b1 que los datos puedan descartar. La fórmula detrás de las dos curvas es la Definición 12.2 en 12.1 La multicolinealidad y el factor de inflación de la varianza.

12.2 Elegir entre modelos: criterios de selección

Intuición

El modelo completo tiene predictores redundantes; un modelo más pequeño podría predecir igual de bien y ser más fácil de confiar. ¿Pero cuál modelo más pequeño? Con trece predictores hay 213=81922^{13} = 8192 subconjuntos posibles. Necesitamos una puntuación que los clasifique. La puntuación obvia, R2R^2, es inútil para esto, porque R2R^2 nunca disminuye cuando agregas un predictor: el modelo más grande siempre gana, incluso si los predictores agregados son ruido. Recuerda de 4.2 La correlación y la pendiente de regresión que R2R^2 es la correlación al cuadrado, una medida de ajuste, no de predicción. Un buen criterio de selección debe premiar el ajuste cobrando a la vez una penalización por cada parámetro extra, de modo que un predictor gane su lugar solo si se paga a sí mismo.

Cuatro criterios hacen esto, cada uno en su propia moneda. El R2R^2 ajustado descuenta R2R^2 por los grados de libertad gastados. El CpC_p de Mallows estima el error total de predicción y lo compara con el número de parámetros. AIC y BIC intercambian bondad de ajuste contra una penalización por tamaño de la teoría de la información. PRESS predice cada caso a partir de un modelo ajustado sin él. Suelen coincidir en el mensaje general (quita el peso muerto) mientras discrepan en el tamaño exacto, lo cual es en sí una lección: no hay un único modelo correcto.

Fórmula

Sea un modelo candidato con pp parámetros (predictores más intercepto), suma de cuadrados del error SSEp=i(YiY^i)2\mathrm{SSE}_p = \sum_i (Y_i - \hat{Y}_i)^2, y SSTO=i(YiYˉ)2\mathrm{SSTO} = \sum_i (Y_i - \bar{Y})^2. Sea σ^2\hat{\sigma}^2 el cuadrado medio del error del modelo más grande (completo), nuestra mejor estimación de la varianza del ruido σ2\sigma^2. Los cuatro criterios son

Ra,p2=1SSEp/(np)SSTO/(n1),Cp=SSEpσ^2(n2p),R^2_{a,p} = 1 - \frac{\mathrm{SSE}_p/(n - p)}{\mathrm{SSTO}/(n-1)}, \qquad C_p = \frac{\mathrm{SSE}_p}{\hat{\sigma}^2} - (n - 2p),
AICp=nln ⁣(SSEpn)+2p,BICp=nln ⁣(SSEpn)+plnn.\mathrm{AIC}_p = n \ln\!\left(\frac{\mathrm{SSE}_p}{n}\right) + 2p, \qquad \mathrm{BIC}_p = n \ln\!\left(\frac{\mathrm{SSE}_p}{n}\right) + p \ln n .

Esa última afirmación es fácil de ver en una imagen. Figure 6 dibuja las dos penalizaciones por tamaño como líneas rectas. Con n=252n = 252 hombres, BIC cobra alrededor de ln2525.5\ln 252 \approx 5.5 por cada parámetro extra mientras que AIC cobra solo 2, así que la línea de BIC sube casi tres veces más empinada. Un predictor tiene que mejorar el ajuste más para pagar su peaje BIC más pesado, que es exactamente por qué BIC aterriza en modelos más pequeños.

Dos líneas rectas de penalización por tamaño contra el número de parámetros p de 1 a 14. La línea AIC, penalización dos por p, sube suavemente hasta 28 en p igual a 14. La línea BIC, penalización p por el logaritmo natural de 252, sube mucho más empinada hasta aproximadamente 77, alrededor de 5.5 por parámetro.

Figure 6:Ambos criterios cobran por el tamaño, pero con n=252n = 252 el BIC cobra alrededor de 5.5 por parámetro extra frente al 2 constante de AIC. La línea más empinada significa que cada predictor debe mejorar más el ajuste para ganar su lugar, así que BIC se decide por modelos más austeros.

El quinto criterio, PRESS, recibe su propia subsección porque mide algo distinto: el error honesto fuera de la muestra.

PRESSp=i=1n(YiY^(i))2,\mathrm{PRESS}_p = \sum_{i=1}^n \bigl(Y_i - \hat{Y}_{(i)}\bigr)^2,

donde Y^(i)\hat{Y}_{(i)} es la predicción para el caso ii del modelo reajustado con el caso ii removido. En palabras: oculta cada observación, predícela a partir del resto, y suma los fallos al cuadrado. Más pequeño es mejor, y a diferencia de SSE\mathrm{SSE}, PRESS no puede reducirse solo agregando predictores, porque un predictor basura ayuda al ajuste pero perjudica la predicción del caso dejado fuera.

Deducción (el CpC_p de Mallows)

Demostración. Queremos un criterio que sea pequeño cuando los valores ajustados Y^i\hat{Y}_i de un modelo estén cerca de las medias verdaderas μi=E{Yi}\mu_i = E\{Y_i\}, a través de los nn casos. Define el objetivo

Γp=1σ2i=1nE{(Y^iμi)2},\Gamma_p = \frac{1}{\sigma^2}\sum_{i=1}^n E\bigl\{(\hat{Y}_i - \mu_i)^2\bigr\},

el error cuadrático medio total de los valores ajustados, estandarizado por σ2\sigma^2. Divide cada término en varianza y sesgo al cuadrado con la identidad E{W2}=Var{W}+(E{W})2E\{W^2\} = \operatorname{Var}\{W\} + (E\{W\})^2 aplicada a W=Y^iμiW = \hat{Y}_i - \mu_i:

iE{(Y^iμi)2}=iVar{Y^i}varianza+i(E{Y^i}μi)2sesgo al cuadrado, llaˊmalo B.\sum_i E\{(\hat{Y}_i - \mu_i)^2\} = \underbrace{\sum_i \operatorname{Var}\{\hat{Y}_i\}}_{\text{varianza}} + \underbrace{\sum_i (E\{\hat{Y}_i\} - \mu_i)^2}_{\text{sesgo al cuadrado, llámalo } B}.

Para el término de varianza, los valores ajustados son Y^=HY\hat{\mathbf{Y}} = \mathbf{H}\mathbf{Y} con la matriz sombrero H\mathbf{H} del modelo candidato, y iVar{Y^i}=σ2tr(H)=pσ2\sum_i \operatorname{Var}\{\hat{Y}_i\} = \sigma^2\,\mathrm{tr}(\mathbf{H}) = p\sigma^2, usando tr(H)=p\mathrm{tr}(\mathbf{H}) = p de 7.3 La matriz sombrero. Así que

iE{(Y^iμi)2}=pσ2+B.\sum_i E\{(\hat{Y}_i - \mu_i)^2\} = p\sigma^2 + B .

Ahora conecta BB con algo que podamos calcular, la suma de cuadrados del error esperada. Escribe Y=μ+ε\mathbf{Y} = \boldsymbol{\mu} + \boldsymbol{\varepsilon} y SSEp=(IH)Y2\mathrm{SSE}_p = \|(\mathbf{I} - \mathbf{H})\mathbf{Y}\|^2. Entonces

E{SSEp}=(IH)μ2+σ2tr(IH)=B+(np)σ2,E\{\mathrm{SSE}_p\} = \|(\mathbf{I}-\mathbf{H})\boldsymbol{\mu}\|^2 + \sigma^2\,\mathrm{tr}(\mathbf{I}-\mathbf{H}) = B + (n - p)\sigma^2,

porque (IH)μ(\mathbf{I}-\mathbf{H})\boldsymbol{\mu} tiene ii-ésima entrada μiE{Y^i}\mu_i - E\{\hat{Y}_i\} así que su longitud al cuadrado es BB, y IH\mathbf{I}-\mathbf{H} es idempotente con traza npn - p (de nuevo 7.3 La matriz sombrero). Despeja el sesgo: B=E{SSEp}(np)σ2B = E\{\mathrm{SSE}_p\} - (n - p)\sigma^2. Sustituye en Γp\Gamma_p:

Γp=pσ2+Bσ2=pσ2+E{SSEp}(np)σ2σ2=E{SSEp}σ2(n2p).\Gamma_p = \frac{p\sigma^2 + B}{\sigma^2} = \frac{p\sigma^2 + E\{\mathrm{SSE}_p\} - (n-p)\sigma^2}{\sigma^2} = \frac{E\{\mathrm{SSE}_p\}}{\sigma^2} - (n - 2p) .

Reemplaza el desconocido E{SSEp}E\{\mathrm{SSE}_p\} por el observado SSEp\mathrm{SSE}_p y el desconocido σ2\sigma^2 por el σ^2\hat{\sigma}^2 del modelo completo, y tienes el estadístico de Mallows:

Cp=SSEpσ^2(n2p).C_p = \frac{\mathrm{SSE}_p}{\hat{\sigma}^2} - (n - 2p) .

Salen dos consecuencias. Si el modelo candidato no tiene sesgo (B=0B = 0, es decir, contiene todos los predictores que importan), entonces E{SSEp}=(np)σ2E\{\mathrm{SSE}_p\} = (n - p)\sigma^2 y Γp=(np)(n2p)=p\Gamma_p = (n - p) - (n - 2p) = p. Así que los modelos sin sesgo tienen CppC_p \approx p: buscas modelos donde CpC_p sea a la vez pequeño y cercano a pp. Un modelo que omite un predictor importante tiene B>0B > 0, lo que empuja CpC_p bien por encima de pp. \blacksquare

R y Python

El paquete leaps de R busca los 213 subconjuntos e informa el mejor modelo de cada tamaño.

Un gráfico del Cp de Mallows contra el número de parámetros p para el mejor subconjunto de cada tamaño. Cp cae de forma pronunciada desde aproximadamente 72 en un predictor hasta un mínimo cercano a 6.2 en ocho predictores (p igual a 9), luego vuelve a subir a lo largo de la línea punteada de 45 grados Cp igual a p. El punto mínimo en p igual a 9 está resaltado.

Figure 7:El CpC_p de Mallows para el mejor subconjunto de cada tamaño. Cae hacia la línea punteada Cp=pC_p = p y alcanza su mínimo en ocho predictores, el tamaño que prefiere el criterio. Más allá de eso, agregar predictores eleva CpC_p.

Un gráfico de doble eje. El R cuadrado ajustado (azul, eje izquierdo) sube hasta un pico en ocho predictores y luego declina ligeramente. El BIC (naranja, eje derecho) cae hasta un mínimo en cuatro predictores y luego sube. Los dos criterios eligen tamaños de modelo distintos.

Figure 8:Dos criterios, dos respuestas. El R2R^2 ajustado alcanza su pico en ocho predictores mientras que BIC, que penaliza el tamaño más fuertemente, prefiere cuatro. Ninguno se equivoca; el informe honesto es un rango de modelos defendibles, no un único ganador.

Deducir y comprobar PRESS

PRESS parece caro: reajustar el modelo nn veces, una por cada caso eliminado, son 252 ajustes por modelo aquí. Una identidad hermosa lo hace gratis. Puedes obtener cada predicción eliminada a partir de un solo ajuste con todos los datos, usando el residuo ordinario y el valor de apalancamiento.

Demostración. Escribe la matriz de diseño X\mathbf{X} con ii-ésima fila xi\mathbf{x}_i', la estimación con todos los datos b=(XX)1XY\mathbf{b} = (\mathbf{X}'\mathbf{X})^{-1}\mathbf{X}'\mathbf{Y}, el valor ajustado Y^i=xib\hat{Y}_i = \mathbf{x}_i'\mathbf{b}, el residuo ei=YiY^ie_i = Y_i - \hat{Y}_i, y el valor de apalancamiento hii=xi(XX)1xih_{ii} = \mathbf{x}_i'(\mathbf{X}'\mathbf{X})^{-1}\mathbf{x}_i de 7.3 La matriz sombrero (la diagonal de la matriz sombrero). Sea b(i)\mathbf{b}_{(i)} la estimación a partir de los datos con el caso ii removido, y Y^(i)=xib(i)\hat{Y}_{(i)} = \mathbf{x}_i'\mathbf{b}_{(i)} la predicción eliminada. Mostramos

YiY^(i)=ei1hii.Y_i - \hat{Y}_{(i)} = \frac{e_i}{1 - h_{ii}} .

Eliminar el caso ii cambia la matriz de productos cruzados y el vector a XXxixi\mathbf{X}'\mathbf{X} - \mathbf{x}_i\mathbf{x}_i' y XYxiYi\mathbf{X}'\mathbf{Y} - \mathbf{x}_i Y_i. La identidad de actualización del inverso de Sherman-Morrison (deducida y comprobada en 9.3 Influencia: qué puntos cambian realmente el ajuste) da

(XXxixi)1=(XX)1+(XX)1xixi(XX)11hii.(\mathbf{X}'\mathbf{X} - \mathbf{x}_i\mathbf{x}_i')^{-1} = (\mathbf{X}'\mathbf{X})^{-1} + \frac{(\mathbf{X}'\mathbf{X})^{-1}\mathbf{x}_i\mathbf{x}_i'(\mathbf{X}'\mathbf{X})^{-1}}{1 - h_{ii}} .

Escribe u=(XX)1xi\mathbf{u} = (\mathbf{X}'\mathbf{X})^{-1}\mathbf{x}_i, de modo que xiu=hii\mathbf{x}_i'\mathbf{u} = h_{ii} y xi(XX)1XY=xib=Y^i\mathbf{x}_i'(\mathbf{X}'\mathbf{X})^{-1}\mathbf{X}'\mathbf{Y} = \mathbf{x}_i'\mathbf{b} = \hat{Y}_i. Multiplica el inverso actualizado por XYxiYi\mathbf{X}'\mathbf{Y} - \mathbf{x}_i Y_i:

b(i)=buYi+u(Y^ihiiYi)1hii=b+uYi(1hii)+Y^ihiiYi1hii=buei1hii,\mathbf{b}_{(i)} = \mathbf{b} - \mathbf{u}Y_i + \frac{\mathbf{u}\,(\hat{Y}_i - h_{ii} Y_i)}{1 - h_{ii}} = \mathbf{b} + \mathbf{u}\,\frac{-Y_i(1 - h_{ii}) + \hat{Y}_i - h_{ii}Y_i}{1 - h_{ii}} = \mathbf{b} - \mathbf{u}\,\frac{e_i}{1 - h_{ii}} ,

donde el numerador colapsó a Y^iYi=ei\hat{Y}_i - Y_i = -e_i. Ahora forma la predicción eliminada:

YiY^(i)=Yixib(i)=(Yixib)+xiuei1hii=ei+hiiei1hii=ei1hii.Y_i - \hat{Y}_{(i)} = Y_i - \mathbf{x}_i'\mathbf{b}_{(i)} = (Y_i - \mathbf{x}_i'\mathbf{b}) + \mathbf{x}_i'\mathbf{u}\,\frac{e_i}{1 - h_{ii}} = e_i + \frac{h_{ii}\,e_i}{1 - h_{ii}} = \frac{e_i}{1 - h_{ii}} .

Así que cada residuo eliminado es simplemente el residuo ordinario dividido por 1hii1 - h_{ii}, y

PRESS=i=1n(ei1hii)2.\mathrm{PRESS} = \sum_{i=1}^n \left(\frac{e_i}{1 - h_{ii}}\right)^2 .

Los puntos de alto apalancamiento (grande hiih_{ii}) ven sus residuos magnificados, lo cual es correcto: esos son los casos sobre los que el modelo se apoya, y los predice peor cuando se remueven. \blacksquare

Antes de aceptar el veredicto de un solo criterio, recorre tú mismo la escalera completa de tamaños de modelo y observa cómo las cuatro puntuaciones tiran en direcciones distintas.

Qué notar: el R2R^2 sube en cada paso, así que siempre te entregaría el modelo completo, mientras que el R2R^2 ajustado y el CpC_p dan la vuelta en ocho predictores y el BIC la da en cuatro. Prueba a detenerte donde cada criterio te dice que pares, y lee cuánto R2R^2 cede cada punto de parada. Las cuatro fórmulas están en 12.2 Elegir entre modelos: criterios de selección.

12.3 Los peligros de la selección automática

Intuición

Es tentador automatizar la búsqueda: dejar que la computadora agregue y quite predictores por sus valores pp hasta que nada mejore. Esto es la selección paso a paso (Definición 12.7), y está disponible en una línea en todo paquete estadístico. También es la fuente de más mala ciencia que casi cualquier otro procedimiento rutinario, y deberías entender exactamente por qué antes de usarla.

Dos cosas salen mal. La primera es el sobreajuste (Definición 12.8): un procedimiento que persigue el mejor ajuste en tu muestra se aferrará a accidentes de esa muestra, patrones que son ruido y no se repetirán. La segunda, más sutil y peor, es la inferencia posterior a la selección (Definición 12.9): una vez que has elegido un modelo porque ajustó bien, los valores pp, los intervalos de confianza y las pruebas FF que el software imprime para ese modelo están mal. Se dedujeron suponiendo que el modelo estaba fijo de antemano, antes de mirar los datos. Elegir el modelo mirando los datos rompe esa suposición, y la significancia reportada se vuelve ficción.

Una demostración con puro ruido

La forma más limpia de ver el desastre es ejecutar la selección sobre datos sin señal alguna. Toma una respuesta y cuarenta predictores que sean todos ruido aleatorio independiente, sin relación con la respuesta ni entre sí. Una prueba honesta casi nunca debería encontrar nada. La selección encuentra bastante.

set.seed(4210)
noise <- data.frame(y = rnorm(100), matrix(rnorm(100 * 40), 100, 40))
names(noise)[-1] <- paste0("x", 1:40)
pvals <- sapply(1:40, function(j)
  summary(lm(noise$y ~ noise[[paste0("x", j)]]))$coefficients[2, 4])
best5 <- order(pvals)[1:5]
selected <- lm(y ~ ., data = noise[, c("y", paste0("x", best5))])
fstat <- summary(selected)$fstatistic
c(R2 = summary(selected)$r.squared,
  overall_F_pvalue = as.numeric(pf(fstat[1], fstat[2], fstat[3], lower.tail = FALSE)))
              R2 overall_F_pvalue
      0.13497399       0.01663716

Elegimos los cinco predictores con los valores pp individuales más pequeños de cuarenta columnas de puro ruido, ajustamos un modelo solo sobre esos cinco, y obtuvimos un valor pp de la prueba FF general de 0.017. Por la regla habitual, ese modelo es “significativo al nivel 0.05”, y su R2=0.135R^2 = 0.135 se ve respetable. Todo ello es una ilusión: no hay relación alguna en los datos. El paso de selección fabricó la significancia escogiendo a dedo, y la prueba FF, ciega al escogido a dedo, la reportó como real.

Esto no es una casualidad única de la semilla. Figure 10 repite todo el experimento 2000 veces. Bajo una prueba honesta el valor pp de la prueba FF general debería ser uniforme en [0,1][0, 1], así que solo el 5 por ciento debería caer por debajo de 0.05. Tras la selección, el 94 por ciento lo hace.

Un histograma del valor p de la prueba F general del modelo seleccionado a través de 2000 repeticiones sobre datos de puro ruido. Las barras se acumulan fuertemente cerca de cero y se adelgazan hacia uno, lejos de la línea punteada plana que produciría una prueba honesta. Una anotación dice 94 por ciento rechaza en 0.05, cuando debería ser 5 por ciento.

Figure 10:Seleccionando los cinco mejores de cuarenta predictores de puro ruido, 2000 veces. Una prueba honesta daría un histograma plano con el 5 por ciento por debajo de 0.05; en cambio el 94 por ciento de los modelos seleccionados se ven significativos. Los valores p impresos tras la selección no son confiables.

Qué hacer en su lugar

Nada de esto significa que la selección de variables esté prohibida. Significa tres cosas. Primera, prefiere los métodos basados en criterios de la Sección 12.2 (compara modelos completos por CpC_p, BIC, o error validado cruzadamente) sobre la búsqueda paso a paso guiada por valores pp, e informa que buscaste. Segunda, nunca cites los valores pp de un modelo seleccionado como si el modelo hubiera estado fijo de antemano; recuerda de 8.4 La prueba lineal general que la distribución de la prueba FF supone que la comparación se eligió antes de ver los datos. Tercera, y más confiable de todo, juzga el modelo final con datos con los que no fue elegido. Eso es validación, el tema de la siguiente sección, y es el único árbitro honesto para un modelo que construiste buscando.

12.4 Validación: entrenar, probar y validar cruzadamente

Intuición

Los residuos de un modelo ajustado te dicen qué tan bien ajusta los datos sobre los que fue construido, lo cual siempre es halagador. Para saber qué tan bien predice un modelo, debes probarlo con datos que nunca ha visto. La idea hace eco del pensamiento fuera de la muestra detrás del bootstrap en 5.4 El bootstrap para la regresión y de los intervalos de predicción de 3.5 Intervalo de predicción para una observación nueva: las estimaciones honestas del error vienen de tratar algunos datos como genuinamente nuevos.

La versión más simple divide los datos una vez: un conjunto de entrenamiento (Definición 12.10) para ajustar el modelo, y un conjunto de prueba, apartado, para medir su error. La división debe hacerse antes de todo modelado, y el conjunto de prueba nunca debe influir en una sola decisión. Una versión más eficiente, la validación cruzada de kk particiones (Definición 12.11), divide los datos en kk particiones iguales, luego rota: cada partición toma su turno como conjunto de prueba mientras las otras k1k - 1 particiones entrenan el modelo. Promediar los kk errores de prueba usa cada caso para probar exactamente una vez, así que no desperdicia datos. Figure 11 muestra la rotación.

Una cuadrícula esquemática para la validación cruzada de cinco particiones. Cinco filas, una por ronda, cada una dividida en cinco bloques de colores. En la ronda uno el primer bloque es naranja (prueba) y el resto azul (entrenamiento); en la ronda dos el segundo bloque es la partición de prueba, y así sucesivamente por la diagonal, de modo que cada una de las cinco particiones es el conjunto de prueba exactamente una vez.

Figure 11:Validación cruzada de cinco particiones. Los datos se dividen en cinco particiones; cada ronda aparta una partición para probar (naranja) y entrena con las otras cuatro (azul). Cada caso se prueba exactamente una vez, y los cinco errores de prueba se promedian.

Medimos el error con la raíz del error cuadrático medio (Definición 12.12), el tamaño típico de un fallo de predicción, en las unidades de la respuesta (puntos porcentuales de grasa corporal). Una más pequeña significa que el modelo está más cerca, en promedio, de la verdad para un hombre nuevo.

La división única entrenamiento/prueba

Divide los 252 hombres con una semilla fija para que el análisis se reproduzca, ajusta sobre el conjunto de entrenamiento, y compara el error de entrenamiento con el error de prueba.

Validación cruzada de kk particiones, escrita a mano

Una sola división es ruidosa: un conjunto de prueba afortunado o desafortunado puede engañar. La validación cruzada promedia sobre kk divisiones. Vale la pena escribir el bucle tú mismo una vez, para que el mecanismo no guarde misterio. Asigna a cada caso un número de partición, luego haz el bucle: entrena con las otras particiones, predice la partición apartada, recolecta los errores al cuadrado.

Un gráfico de RMSE contra el número de predictores, con dos curvas. La RMSE de entrenamiento (azul) cae de forma constante desde aproximadamente 4.6 en un predictor hacia 3.9 en trece. La RMSE validada cruzadamente con diez particiones (naranja) cae de forma pronunciada al principio, se aplana alrededor de cuatro a ocho predictores cerca de 4.3, y vuelve a subir después, con su mínimo resaltado alrededor de ocho predictores.

Figure 12:El error de entrenamiento (azul) siempre cae a medida que se agregan predictores. El error validado cruzadamente (naranja), la medida honesta, cae, se aplana y luego sube: pasado cierto punto, los predictores extra compran ajuste en esta muestra pero no exactitud en hombres nuevos. La brecha entre las curvas es el sobreajuste hecho visible.

El Ejemplo 12.5 reportó la RMSE de prueba de una sola división. Este widget repite esa división mil veces, para que veas todas las demás respuestas que igual de fácil te pudo haber dado.

Qué notar: unos solos sesenta y tres hombres apartados pueden puntuar este mismo modelo entre unos 3.0 y 4.9, una dispersión de casi dos puntos porcentuales de grasa corporal. Prueba cinco divisiones individuales, luego mil, y observa cómo la media se asienta en el valor de dejar uno fuera que el conjunto completo ya conocía. Las definiciones de entrenamiento, prueba y validación cruzada están en 12.4 Validación: entrenar, probar y validar cruzadamente.

12.5 Un vistazo a la contracción: ridge y lasso

Intuición

La selección es un instrumento tosco: un predictor está o dentro (coeficiente completo) o fuera (cero). La contracción (Definición 12.13) ofrece una alternativa más suave. En vez de eliminar predictores, los conserva todos pero jala sus coeficientes hacia cero, cambiando un poco de sesgo por una gran caída de varianza. Cuando los predictores son colineales, los mínimos cuadrados ordinarios pueden producir coeficientes enormes que se cancelan entre sí (el peso negativo del Ejemplo 12.1). La contracción se niega a dejar que los coeficientes crezcan tanto, lo que los estabiliza.

Un gráfico conceptual del error contra la complejidad del modelo. El sesgo al cuadrado (verde, discontinuo) cae a medida que sube la complejidad; la varianza (naranja, punteada) sube; el ruido irreducible es una línea plana. Su suma, el error de predicción esperado (azul), es una curva en forma de U con un punto óptimo marcado en el medio.

Figure 14:El equilibrio sesgo-varianza. A medida que un modelo se vuelve más flexible, el sesgo cae pero la varianza sube, y el error de predicción esperado es su suma: una U con un punto óptimo. La selección y la contracción son ambas formas de apuntar a ese punto óptimo en vez del extremo de bajo sesgo y alta varianza.

Fórmula

Los mínimos cuadrados ordinarios minimizan la suma de residuos al cuadrado. Ridge (Definición 12.14) y lasso (Definición 12.15) agregan una penalización sobre el tamaño de los coeficientes.

Ridge usa la penalización al cuadrado (βk2\sum \beta_k^2, la norma L2L_2); lasso usa la penalización de valor absoluto (βk\sum |\beta_k|, la norma L1L_1). La diferencia suena menor y no lo es. Ridge encoge cada coeficiente hacia cero pero rara vez exactamente a cero. Lasso puede fijar coeficientes exactamente a cero, así que hace selección de variables y contracción a la vez. La razón es geométrica, mostrada en Figure 15: la región de restricción del lasso es un rombo con esquinas sobre los ejes, y el contorno de mejor ajuste tiende a tocar una esquina, donde un coeficiente es cero. La región de restricción de ridge es un disco suave sin esquinas.

Dos paneles que muestran contornos elípticos de pérdida de mínimos cuadrados alrededor de la estimación MCO. A la izquierda, la restricción del lasso es un rombo (L1) y la estrella de solución se sitúa en la esquina superior sobre el eje vertical, donde el primer coeficiente es cero. A la derecha, la restricción de ridge es un círculo (L2) y la estrella de solución se sitúa fuera de los ejes, así que ambos coeficientes son distintos de cero pero encogidos.

Figure 15:Por qué el lasso pone coeficientes en cero y ridge no. La solución está donde un contorno de pérdida creciente toca primero la región de restricción. El rombo del lasso tiene esquinas sobre los ejes, así que los contornos a menudo lo tocan en una esquina (un coeficiente fijado en cero); el disco suave de ridge no tiene esquinas, así que solo encoge.

R y Python

El paquete de R glmnet es la herramienta estándar. Su cv.glmnet ajusta toda la trayectoria de valores de λ\lambda y elige uno por validación cruzada, devolviendo lambda.min (el minimizador del error) y lambda.1se (el mayor λ\lambda dentro de un error estándar del mínimo, una elección deliberadamente más dispersa). Los predictores se estandarizan automáticamente.

Un gráfico de las trayectorias de coeficientes del lasso contra log-lambda para los trece predictores de grasa corporal. A la izquierda (penalización pequeña) muchos coeficientes están dispersos, con el abdomen alto y positivo y la muñeca baja y negativa. A medida que log-lambda aumenta hacia la derecha, las trayectorias convergen a cero una tras otra, hasta que cerca del borde derecho todos los coeficientes son cero.

Figure 16:Trayectorias de coeficientes del lasso. A medida que la penalización logλ\log\lambda crece (moviéndose a la derecha), los coeficientes se jalan exactamente a cero uno tras otro, así que el lasso realiza una selección de variables continua. El abdomen y la muñeca son los últimos en sobrevivir.

El resumen sencillo de la contracción

Ridge y lasso responden a los problemas de colinealidad y selección en un solo movimiento. Ridge conserva cada predictor pero encoge los coeficientes de modo que dos predictores colineales no puedan estallar uno contra otro; es la herramienta natural cuando crees que muchos predictores contribuyen cada uno un poco. Lasso encoge y selecciona a la vez, poniendo en cero los coeficientes que no necesita, así que es la herramienta natural cuando crees que solo unos pocos predictores importan y quieres que el modelo los encuentre. Ambos reemplazan la pregunta discreta e inestable “¿cuáles predictores están dentro?” con un dial suave y ajustable λ\lambda, fijado por validación cruzada. Por eso la contracción, no la selección paso a paso, es el estándar moderno cuando el objetivo es predecir.

12.6 Resumen del capítulo

Ahora puedes manejar una regresión con más predictores de los que puedes confiar. Diagnosticaste la multicolinealidad con el factor de inflación de la varianza y lo dedujiste de una regresión auxiliar; comparaste modelos candidatos con R2R^2 ajustado, CpC_p de Mallows, AIC, BIC y PRESS, deduciendo CpC_p y demostrando el atajo del residuo eliminado que hace gratis el dejar uno fuera; viste, en una demostración de puro ruido, por qué la selección paso a paso sobreajusta y por qué los valores pp posteriores a la selección mienten; escribiste un bucle de validación cruzada de kk particiones a mano y usaste un conjunto de prueba apartado para juzgar un modelo honestamente; y describiste y ejecutaste ridge y lasso, leyendo la contracción como un intercambio sesgo-varianza hecho por una penalización ajustable. En los datos de grasa corporal el candidato de ocho predictores venció al modelo completo en cada medida honesta: menor CpC_p, menor PRESS, y menor error validado cruzadamente.

Figure 17 pone todo el capítulo en una sola página: diagnostica la redundancia, deja que tu objetivo decida el remedio, elige un modelo por una puntuación con mentalidad de predicción, y confirma al ganador con datos que nunca vio.

Un diagrama de flujo de arriba hacia abajo. Comienza en una caja "muchos predictores, la mayoría redundantes", fluye hacia abajo hasta "diagnostica la redundancia: calcula los VIF", luego hasta una caja de decisión "¿cuál es tu objetivo?" que se ramifica en dos direcciones. La rama de predecir lleva a "predecir solamente: la colinealidad es inofensiva, conserva el modelo tal cual". La rama de interpretar lleva a "interpretar coeficientes: reduce la redundancia quitando, combinando o encogiendo". Ambas ramas se juntan en "elige el modelo por una puntuación con mentalidad de predicción: Cp, BIC, o error validado cruzadamente, nunca el R cuadrado simple o los valores p paso a paso", que fluye hacia una caja final "confirma al ganador con datos apartados, un conjunto de prueba o validación cruzada de k particiones".

Figure 17:El capítulo en una imagen. Diagnostica la redundancia, deja que tu objetivo (predecir frente a interpretar) elija el remedio, elige el modelo por una puntuación con mentalidad de predicción, y confírmalo con datos que nunca vio.

Resultados clave de un vistazo

ResultadoEnunciado o fórmulaVálido cuando
Varianza del coeficiente (Teorema 12.4)Var{bk}=σ2Skk(1Rk2)=σ2SkkVIFk\operatorname{Var}\{b_k\} = \dfrac{\sigma^2}{S_{kk}(1 - R_k^2)} = \dfrac{\sigma^2}{S_{kk}}\,\mathrm{VIF}_kmodelo lineal general, errores no correlacionados de igual varianza
Factor de inflación de la varianza (Definición 12.2)VIFk=1/(1Rk2)\mathrm{VIF}_k = 1/(1 - R_k^2), con Rk2R_k^2 el R2R^2 auxiliarcualquier regresión múltiple
R2R^2 ajustado1SSEp/(np)SSTO/(n1)1 - \dfrac{\mathrm{SSE}_p/(n-p)}{\mathrm{SSTO}/(n-1)}; más grande es mejorcomparar modelos de distinto tamaño
CpC_p de Mallows (Teorema 12.5)Cp=SSEp/σ^2(n2p)C_p = \mathrm{SSE}_p/\hat{\sigma}^2 - (n - 2p); un modelo sin sesgo tiene CppC_p \approx pσ^2\hat{\sigma}^2 de un modelo completo casi sin sesgo
AIC / BICnln(SSEp/n)+{2p, plnn}n\ln(\mathrm{SSE}_p/n) + \{2p,\ p\ln n\}; más pequeño es mejorcomparados dentro de un programa
Atajo de PRESS (Teorema 12.6)PRESS=(ei/(1hii))2\mathrm{PRESS} = \sum (e_i/(1 - h_{ii}))^2ajuste lineal por mínimos cuadrados
CV RMSE1KkMSEk\sqrt{\frac{1}{K}\sum_k \mathrm{MSE}_k}; más pequeño es mejorparticiones disjuntas, probadas una vez cada una
Ridge / lasso$\min \mathrm{RSS} + \lambda\sum {\beta_k^2,\\beta_k

Términos clave. Multicolinealidad, factor de inflación de la varianza, regresión auxiliar, R2R^2 ajustado, CpC_p de Mallows, AIC, BIC, PRESS, residuo eliminado, selección paso a paso, sobreajuste, inferencia posterior a la selección, conjuntos de entrenamiento y de prueba, validación cruzada de kk particiones, raíz del error cuadrático medio, equilibrio sesgo-varianza, contracción, regresión ridge, lasso, parámetro de ajuste λ\lambda.

Ahora deberías ser capaz de

Dónde encaja esto. Este capítulo son las etapas AJUSTAR y COMPROBAR de El flujo de trabajo del modelado hechas juntas y repetidamente: ajustas muchos modelos, compruebas cada uno por colinealidad y error de predicción, e iteras hacia uno que puedas defender. Los capítulos 8 a 11 te dieron una sola regresión múltiple y las herramientas para interpretarla y diagnosticarla; este capítulo enfrentó la situación más difícil de muchos modelos competidores y te enseñó a elegir entre ellos por la predicción en vez del ajuste. La mentalidad de validación pasa directo a 13. Regresión logística, donde el mismo pensamiento de datos apartados se vuelve las métricas de clasificación (exactitud, ROC) que juzgan un modelo logístico, y las ideas de contracción y de criterios reaparecen dondequiera que un modelo tenga más parámetros de los que los datos pueden sostener cómodamente.

12.7 Preguntas frecuentes

P1. ¿La multicolinealidad sesga mis coeficientes? No. Los mínimos cuadrados siguen siendo insesgados bajo colinealidad: en promedio los coeficientes siguen siendo correctos. Lo que la colinealidad hace es inflar su varianza, así que las estimaciones de cualquier muestra individual pueden estar tremendamente desviadas, con signos cambiados y errores estándar enormes. El promedio está bien; la estimación individual no es confiable.

P2. Si la colinealidad no perjudica la predicción, ¿por qué preocuparse por ella? Depende de tu objetivo. Si solo quieres predecir la grasa corporal para hombres como los de los datos, un modelo colineal predice bien y puedes ignorar los VIF. Si quieres interpretar los coeficientes (para decir cuál medida importa y por cuánto), la colinealidad vuelve esos coeficientes sin sentido, y debes arreglarla quitando, combinando o encogiendo predictores.

P3. ¿Qué criterio de selección debo usar? Para interpretación, BIC y su penalización más pesada te dan un modelo austero y defendible. Para predicción, el error validado cruzadamente es la respuesta más directa, y el CpC_p de Mallows es un sustituto rápido y bien motivado. No agonices por diferencias pequeñas: informa que los criterios apuntaron a un rango de modelos (aquí, de cuatro a ocho predictores) y elige dentro de ese rango por una razón que puedas enunciar.

P4. ¿Por qué el CpC_p del modelo completo siempre es igual al número de sus parámetros? Por construcción. Cp=SSEp/σ^2(n2p)C_p = \mathrm{SSE}_p/\hat{\sigma}^2 - (n - 2p), y para el modelo completo σ^2=SSEfull/(npfull)\hat{\sigma}^2 = \mathrm{SSE}_{\text{full}}/(n - p_{\text{full}}), así que SSEfull/σ^2=npfull\mathrm{SSE}_{\text{full}}/\hat{\sigma}^2 = n - p_{\text{full}} y $C_p = (n - p_{\text{full}})

P5. ¿Un PRESS más bajo siempre es mejor? Como comparación de modelos sobre los mismos datos, sí: un PRESS más bajo significa mejor predicción dejando uno fuera. Pero PRESS sigue siendo una estimación dentro de la muestra en el sentido de que usa los mismos 252 hombres para construir y para probar (solo que nunca el mismo hombre para ambos a la vez), así que puede ser optimista si todo el conjunto de datos es inusual. Un conjunto de prueba realmente apartado, o validación cruzada de kk particiones repetida con semillas distintas, es una comprobación más fuerte.

P6. ¿Puedo simplemente confiar en el modelo que devuelve la función step() de mi software? No. La selección paso a paso sobreajusta y sus valores pp reportados son inválidos (Sección 12.3). Si la usas, trata su salida como un candidato a validar con datos apartados, nunca como un modelo terminado, y nunca cites la significancia de sus coeficientes como si el modelo se hubiera elegido de antemano.

P7. El lasso y el paso a paso ambos quitan predictores. ¿Cuál es la diferencia? El paso a paso toma decisiones duras e inestables de dentro o fuera por valor pp y reporta inferencia deshonesta. El lasso toma la decisión de forma continua a través de una sola penalización λ\lambda elegida por validación cruzada, encogiendo los coeficientes suavemente y apagándolos solo a medida que crece la penalización. El lasso es más estable, tiene una justificación coherente de sesgo-varianza, y está construido para predecir. En caso de duda, prefiérelo.

P8. ¿Por qué estandarizar los predictores antes de ridge o lasso? La penalización βk2\sum \beta_k^2 o βk\sum |\beta_k| suma coeficientes medidos en las unidades propias de cada predictor. Sin estandarizar, un predictor medido en unidades pequeñas (y por eso con un coeficiente grande) sería penalizado más que un predictor idéntico en unidades grandes. Estandarizar pone cada predictor en la misma escala para que la penalización sea justa. Tanto glmnet como el ajuste escalado de scikit-learn aquí hacen esto.

12.8 Problemas de práctica

  1. (A) En una sola oración cada uno, di qué le hace la multicolinealidad al sesgo de bkb_k, a la varianza de bkb_k, y a las predicciones Y^\hat{Y} hechas dentro del rango de los datos. Luego nombra dos de los remedios estándar para un predictor con VIF alto.

  2. (A) Un predictor tiene VIF=5\mathrm{VIF} = 5. ¿Cuál es el Rk2R_k^2 auxiliar, y cuántas veces más grande es Var{bk}\operatorname{Var}\{b_k\} que lo que sería si el predictor no estuviera correlacionado con los demás?

  3. (A) Explica por qué R2R^2 no puede usarse para elegir entre un modelo con 5 predictores y uno con 8 predictores, pero el R2R^2 ajustado sí.

  4. (A) Enuncia la regla práctica que conecta el CpC_p de un “buen” modelo con su número de parámetros pp, y di qué indica un CpC_p muy por encima de pp.

  5. (A) ¿Por qué BIC tiende a seleccionar modelos más pequeños que AIC? Señala el término específico que difiere.

  6. (A) En palabras sencillas, ¿qué mide el estadístico PRESS que el SSE\mathrm{SSE} ordinario no?

  7. (A) Un estudiante selecciona predictores por regresión paso a paso, luego reporta los valores pp del modelo como evidencia de que es correcto. Nombra la falacia y explícala en dos oraciones.

  8. (A) Describe la diferencia entre lo que ridge y lasso le hacen a un coeficiente, y di cuál de los dos realiza selección de variables.

  9. (A) La RMSE de entrenamiento de un modelo es 3.5 y su RMSE de validación cruzada de 10 particiones es 4.6. ¿Qué te dice la brecha, y cuál número estima el desempeño con datos nuevos?

  10. (A) Explica por qué los predictores se estandarizan antes de aplicar una penalización ridge o lasso.

  11. (B) Deduce Var{bk}=σ2/(Skk(1Rk2))\operatorname{Var}\{b_k\} = \sigma^2/(S_{kk}(1 - R_k^2)) (Teorema 12.4) partiendo del hecho de variable agregada de que bkb_k es la pendiente de YY sobre los residuos de XkX_k regresado sobre los demás predictores. Identifica dónde aparece VIFk\mathrm{VIF}_k.

  12. (B) Muestra que la suma de cuadrados del error de la regresión auxiliar es igual a Skk(1Rk2)S_{kk}(1 - R_k^2), y úsalo para explicar por qué un predictor casi determinado por los demás tiene un denominador casi nulo en la varianza de su coeficiente.

  13. (B) Deduce el CpC_p de Mallows (Teorema 12.5) a partir del error cuadrático medio total estandarizado Γp\Gamma_p, incluyendo los pasos iVar{Y^i}=pσ2\sum_i \operatorname{Var}\{\hat{Y}_i\} = p\sigma^2 y E{SSEp}=B+(np)σ2E\{\mathrm{SSE}_p\} = B + (n - p)\sigma^2. Concluye que un modelo sin sesgo tiene CppC_p \approx p.

  14. (B) Demuestra el atajo del residuo eliminado de PRESS YiY^(i)=ei/(1hii)Y_i - \hat{Y}_{(i)} = e_i/(1 - h_{ii}) (Teorema 12.6), enunciando con claridad dónde se usa la actualización del inverso de Sherman-Morrison.

  15. (B) Muestra que para el modelo completo, CpC_p es igual a su número de parámetros exactamente. (Parte de la definición de CpC_p y del hecho de que σ^2\hat{\sigma}^2 es el MSE del modelo completo.)

  16. (B) Un caso de alto apalancamiento tiene hii=0.9h_{ii} = 0.9 y residuo ordinario ei=2e_i = 2. Calcula su residuo eliminado, y explica por qué la predicción dejando uno fuera magnifica los residuos de los casos de alto apalancamiento.

  17. (B) Explica, usando la descomposición sesgo-varianza del error de predicción, por qué un modelo puede tener a la vez menor error de entrenamiento y mayor error de prueba que un modelo más pequeño. ¿Cuál término de la descomposición sube a medida que el modelo crece?

  18. (B) Muestra que a medida que λ\lambda \to \infty el coeficiente ridge de un solo predictor estandarizado β^ridge=xiYi/(xi2+λ)\hat{\beta}_{\text{ridge}} = \sum x_i Y_i / (\sum x_i^2 + \lambda) tiende a cero, y que en λ=0\lambda = 0 es igual a la pendiente de mínimos cuadrados. (Usa la solución ridge de un predictor, que puedes deducir en el Problema 19.)

  19. (B) Deduce el estimador ridge de un predictor del Problema 18 igualando a cero la derivada de (Yiβxi)2+λβ2\sum (Y_i - \beta x_i)^2 + \lambda \beta^2, e interpreta el denominador como “señal más penalización”.

  20. (C) Ajusta el modelo completo y reproduce los VIF. Identifica cada predictor con $\mathrm{VIF}

    10$ y, para uno de ellos, confirma el VIF ejecutando su regresión auxiliar a mano.

  21. (C) Ejecuta la búsqueda exhaustiva del mejor subconjunto (R leaps, o el bucle de Python) e informa el mejor modelo de cada tamaño con su CpC_p. Enuncia los tamaños elegidos por CpC_p, R2R^2 ajustado y BIC.

  22. (C) Para el mejor subconjunto de cuatro predictores (peso, abdomen, antebrazo, muñeca), calcula CpC_p, AIC, BIC y PRESS. Compara cada uno con el candidato de ocho predictores y di cuál modelo reportarías y por qué.

  23. (C) Escribe una función que calcule PRESS a partir de un modelo ajustado usando el atajo, y verifícala contra un bucle de fuerza bruta dejando uno fuera sobre el modelo candidato. Informa ambos valores.

  24. (C) Reproduce la demostración de puro ruido posterior a la selección con una semilla distinta. Informa el R2R^2 del modelo seleccionado y el valor pp de la prueba FF general, y explica por qué son engañosos.

  25. (C) Realiza una división entrenamiento/prueba 70/30 con semilla. Ajusta los modelos completo y candidato sobre el conjunto de entrenamiento e informa ambas RMSE del conjunto de prueba. ¿Cuál modelo predice mejor, y coincide el orden con el ajuste del conjunto de entrenamiento?

  26. (C) Escribe un bucle de validación cruzada de 5 particiones a mano y compara el modelo completo, el candidato de ocho predictores, y el modelo de cuatro predictores (peso, abdomen, antebrazo, muñeca) por CV RMSE. Ordénalos.

  27. (C) Ajusta un lasso con cv.glmnet (R) o LassoCV (Python) a todo el conjunto de datos. Informa cuáles predictores tienen coeficientes distintos de cero en la penalización validada cruzadamente, y compara ese conjunto con el modelo CpC_p de ocho predictores.

  28. (C) Ajusta la regresión ridge a través de una malla de valores de λ\lambda y grafica el coeficiente de weight contra logλ\log\lambda. Describe cómo cambia el coeficiente, y conecta su comportamiento con el VIF de 33.5 que encontraste para weight.

  29. (C) Usando el modelo candidato, grafica los residuos eliminados ei/(1hii)e_i/(1 - h_{ii}) contra los residuos ordinarios eie_i. ¿Cuáles casos se mueven más, y qué propiedad de esos casos lo explica?

  30. (C) Toma el 25 por ciento de los hombres con los mayores apalancamientos y reajusta el modelo candidato sin ellos. Informa cuánto cambian los coeficientes y PRESS, y discute si el modelo se está apoyando en unos pocos casos.

12.9 Práctica de examen

Estas cinco preguntas están escritas al estilo de los exámenes del curso: cada una te pide explicar tu razonamiento en oraciones completas, no solo producir un número. Donde se muestra salida, se produjo en la máquina del curso a partir de fat.csv; lee los números que necesites del impreso y di cuáles usaste. Trabaja cada una antes de abrir su respuesta modelo.

EP 12.1 (conceptos, evaluar una afirmación). El modelo completo de grasa corporal del Ejemplo 12.1 fue reajustado y se imprimieron el coeficiente de weight y tres factores de inflación de la varianza.

full <- lm(brozek ~ age + weight + height + neck + chest + abdom + hip +
             thigh + knee + ankle + biceps + forearm + wrist, data = fat)
round(coef(summary(full))["weight", ], 4)
round(car::vif(full)[c("weight", "hip", "abdom")], 2)
  Estimate Std. Error    t value   Pr(>|t|)
   -0.0803     0.0496    -1.6198     0.1066
weight    hip  abdom
 33.51  14.80  11.77

Un estudiante lee el coeficiente negativo de weight y concluye: “manteniendo fijas las otras doce medidas, los hombres más pesados tienen menos grasa corporal, así que deberíamos decirles a los clientes que ganar peso baja su porcentaje de grasa corporal”. Evalúa esta afirmación. Usa el factor de inflación de la varianza en tu respuesta, y enuncia con claridad qué puede y qué no puede sostener el coeficiente.

EP 12.2 (interpretar salida en contexto). Se ejecutó una búsqueda exhaustiva del mejor subconjunto sobre una versión de seis predictores del modelo, brozek ~ age + weight + height + abdom + hip + thigh, informando el mejor subconjunto de cada tamaño.

rs <- regsubsets(brozek ~ age + weight + height + abdom + hip + thigh,
                 data = fat, nvmax = 6)
ss <- summary(rs)
rbind(Cp = round(ss$cp, 2), adjR2 = round(ss$adjr2, 4), BIC = round(ss$bic, 1))
c(min_Cp = which.min(ss$cp), max_adjR2 = which.max(ss$adjr2), min_BIC = which.min(ss$bic))
        [,1]    [,2]    [,3]    [,4]    [,5]    [,6]
Cp     55.07    6.29    3.88    4.40    5.13    7.00
adjR2 0.6608  0.7165  0.7203  0.7208  0.7212  0.7202
BIC  -262.40 -303.10 -302.00 -298.00 -293.70 -288.30
   min_Cp max_adjR2   min_BIC
        3         5         2

El mejor modelo de tamaño 2 es weight + abdom, el mejor modelo de tamaño 3 es weight + abdom + thigh, y el mejor modelo de tamaño 5 es weight + height + abdom + hip + thigh. Interpreta esta salida. Enuncia cuál tamaño de modelo selecciona cada uno de los tres criterios, explica en oraciones completas por qué el CpC_p de Mallows y BIC aterrizan en tamaños distintos, y di cuál modelo reportarías a un colega que quiere interpretar los coeficientes, con tu razón.

EP 12.3 (qué cambiaría si). Para el modelo de cuatro predictores brozek ~ weight + abdom + forearm + wrist, la suma de cuadrados del error es SSEp=3994.31\mathrm{SSE}_p = 3994.31 con n=252n = 252 y p=5p = 5 parámetros. La estimación de la varianza del ruido del modelo completo es σ^2=15.90\hat{\sigma}^2 = 15.90.

cand4 <- lm(brozek ~ weight + abdom + forearm + wrist, data = fat)
c(SSE = sum(resid(cand4)^2), sigma2_full = summary(full)$sigma^2)
       SSE sigma2_full
  3994.311      15.904

Primero calcula CpC_p para este modelo. Luego responde: ¿qué cambiaría si estimaras σ2\sigma^2 no del modelo completo sino del modelo de solo abdomen, cuyo cuadrado medio residual es 20.38? Calcula el CpC_p resultante y explica, en oraciones completas, por qué CpC_p se vuelve sin sentido con esa elección.

EP 12.4 (evaluar una afirmación, interpretar salida). Tres modelos se compararon por su RMSE de entrenamiento y por la RMSE validada cruzadamente de 5 particiones sobre todos los datos de grasa corporal: el modelo completo de trece predictores, el candidato de ocho predictores (edad, peso, cuello, abdomen, cadera, muslo, antebrazo, muñeca), y un modelo de dos predictores (abdomen, peso).

set.seed(4210)
folds <- sample(rep(1:5, length.out = nrow(fat)))
# training RMSE and 5-fold CV RMSE for each model
full   train RMSE 3.876   5-fold CV RMSE 4.097
cand8  train RMSE 3.893   5-fold CV RMSE 4.003
two    train RMSE 4.103   5-fold CV RMSE 4.183

Un estudiante argumenta: “el modelo completo tiene la RMSE de entrenamiento más baja (3.876), así que predice mejor; reporta el modelo completo”. Evalúa este argumento. Di cuál número estima cómo le irá al modelo con un hombre nuevo y por qué, explica por qué el orden se invierte entre las dos columnas, y enuncia cuál modelo reportarías.

EP 12.5 (qué cambiaría si). Se ajustó un lasso a todos los datos de grasa corporal con la penalización λ\lambda elegida por validación cruzada, y los coeficientes se leyeron en dos penalizaciones, lambda.min (el minimizador del error) y el más disperso lambda.1se.

X <- as.matrix(fat[, preds]); Y <- fat$brozek
set.seed(4210)
cvl <- cv.glmnet(X, Y, alpha = 1)
round(cbind(min = coef(cvl, s = "lambda.min")[, 1],
            onese = coef(cvl, s = "lambda.1se")[, 1]), 3)
                min   onese
(Intercept) -13.683  -6.733
age           0.055   0.052
weight       -0.065   0.000
height       -0.081  -0.149
neck         -0.403  -0.137
chest         0.000   0.000
abdom         0.830   0.635
hip          -0.147   0.000
thigh         0.171   0.000
knee          0.000   0.000
ankle         0.086   0.000
biceps        0.114   0.000
forearm       0.387   0.112
wrist        -1.437  -1.265

En lambda.min once predictores tienen coeficientes distintos de cero; en lambda.1se solo seis. Explica qué le pasa a los coeficientes a medida que λ\lambda aumenta de lambda.min a lambda.1se, por qué el lasso fija algunos coeficientes exactamente en cero mientras que la regresión ridge no lo haría, y qué cambiaría si los predictores no se estandarizaran antes de ajustar.

Juego del capítulo