UNIDAD 6 - Parte 1
Bajo el nombre de análisis de regresión se engloba al conjunto de herramientas que permiten explicar (modelar matemáticamente) el comportamiento de una variable (variable respuesta (Y)) a partir de la información proporcionada por una o más variables (variable/s explicativa/s (X’s)).
Contamos con información sobre la altura y el peso de 7 personas de la misma población que estudiamos la clase pasada.
ID_persona | altura_cm | peso_kg |
---|---|---|
1 | 188.6 | 79.7 |
2 | 172.5 | 70.9 |
3 | 181.9 | 74.9 |
4 | 165.3 | 64.5 |
5 | 158.6 | 61.9 |
6 | 157.4 | 59.1 |
7 | 193.3 | 82.2 |
El propósito es utilizar la información anterior para construir un modelo que permita predecir la altura de una persona de la población a partir de su peso.
Recordando lo que vimos la semana pasada… ¿cuál es la variable respuesta y cuál es la variable explicativa o predictora?
Antes de pensar en un modelo, lo primero es representar gráficamente la información con la que contamos para explorar las características de la relación entre las dos variables de interés.
Para aquellas situaciones en las que se puede suponer que una recta representa la forma en la que la variable respuesta \(Y\) depende de la variable explicativa o predictora \(X\) se postula el siguiente modelo:
\[ Y = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1} X \]
\[ Y = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1} X \]
\(\color{darkred}{\beta_0}\) es la ordenada al origen y \(\color{darkblue}{\beta_1}\) la pendiente de la recta que representa la relación entre \(Y\) y \(X\). Son los llamados parámetros o coeficientes del modelo.
Pero… la cosa no puede quedar ahí.
La ecuación del modelo incluye un término adicional: \(\color{#F4442E}{\varepsilon}\), el error aleatorio asociado con \(Y\):
\[ Y = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1} X + \color{#F4442E}{\varepsilon} \]
La inclusión de este término tiene que ver con que las variables \(X\) e \(Y\) no están vinculadas de manera determinista.
Dado un valor de la variable predictora, \(x_i\), no se puede especificar de forma exacta el valor de la variable respuesta, ya que existe la influencia de distintos componentes aleatorios/no modelados.
\(\color{darkred}{\beta_0} + \color{darkblue}{\beta_1} X\) representa a la llamada recta de regresión teórica o poblacional o, de forma más general, función de regresión, y su ecuación se escribe completa de la siguiente manera:
\[\mu_{Y/X} = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1} X\]
Escrita de esta forma, se pone en evidencia que es la recta que pasa por el promedio de todos los valores posibles que puede tomar la variable respuesta \(Y\) para cada valor de la variable predictora \(X\).
La recta de regresión poblacional es una función desconocida, porque no conocemos los valores exactos que toman \(\color{darkred}{\beta_0}\) y \(\color{darkblue}{\beta_1}\).
\(\color{darkred}{\beta_0}\) (ordenada al origen): valor promedio de la variable respuesta cuando la explicativa es igual a 0.
\(\color{darkblue}{\beta_1}\) (pendiente): cambio promedio en la variable respuesta cuando la explicativa aumenta en una unidad.
Para estimar ambos parámetros, utilizaremos información muestral.
Recta de regresión teórica: \(\mu_{Y/X} = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1} X\)
Una vez recolectada una muestra con \(n\) pares de valores \((x_i,y_i)\), la estimación de la recta de regresión teórica es:
\[\hat{y} = \color{#CF6D68}{\hat{\beta_0}} + \color{#648DC9}{\hat{\beta_1}} x\]
donde \(\color{#CF6D68}{\hat{\beta_0}}\) y \(\color{#648DC9}{\hat{\beta_1}}\) son las estimaciones puntuales de la ordenada al origen y la pendiente, respectivamente.
\[\hat{y} = \color{#CF6D68}{\hat{\beta_0}} + \color{#648DC9}{\hat{\beta_1}} x\] Las fórmulas para calcular estos valores son el resultado de aplicar el Método de Mínimos Cuadrados (OLS), el cual provee las estimaciones que corresponden a la recta que mejor ajusta a los datos experimentales.
La clase pasada propusimos un modelo bien simple para predecir la altura de las personas de la población: la media aritmética de la altura de las personas de la muestra.
Intuitivamente, para “valorar” qué tan bueno resultó ser el modelo que propusimos, miramos estas distancias verticales entre los valores observados de la altura y los predichos por nuestro modelo (en realidad, el predicho).
Estas distancias verticales que miramos de forma intuitiva se denominan residuos del modelo:
\[{e_i} = y_i - \hat{y_i}\] Para nuestro primer modelo bien sencillo (\(\hat{y} = \bar{y}\)), cada residuo se calcula como la diferencia entre el valor observado de la altura y la media:
\[{e_i} = y_i - \bar{y}\]
En el marco de nuestro modelo “mejorado”, que incorpora a la variable peso como variable explicativa (\(\hat{y} = \color{#CF6D68}{\hat{\beta_0}} + \color{#648DC9}{\hat{\beta_1}} x\)):
\[e_i = y_i - \hat{y_i} = y_i - (\color{#CF6D68}{\hat{\beta_0}} + \color{#648DC9}{\hat{\beta_1}}x_i)\]
Si los residuos representan errores en el ajuste, lo deseable es encontrar los valores de \(\color{#CF6D68}{\hat{\beta_0}}\) y \(\color{#648DC9}{\hat{\beta_1}}\) que arrojen residuos lo más pequeños posibles. En particular, se buscan los valores \(\color{#CF6D68}{\hat{\beta_0}}\) y \(\color{#648DC9}{\hat{\beta_1}}\) que minimicen la suma de los residuos al cuadrado:
\[\sum_{i=1}^{n} {e_i}^2 = \sum_{i=1}^{n} (y_i-\hat{y_i})^2 =\sum_{i=1}^{n} (y_i-\color{#CF6D68}{\hat{\beta_0}} - \color{#648DC9}{\hat{\beta_1}}x_i)^2 = min\] La suma de los residuos al cuadrado se conoce como suma de cuadrados de error (SCerror o RSS, por las siglas en inglés).
Para encontrar los valores de \(\color{#CF6D68}{\hat{\beta_0}}\) y \(\color{#648DC9}{\hat{\beta_1}}\) que minimizan la sumatoria anterior, se deriva con respecto a \(\color{#CF6D68}{\hat{\beta_0}}\) y \(\color{#648DC9}{\hat{\beta_1}}\), se igualan ambas derivadas parciales a cero y se resuelve el sistema de ecuaciones resultante (ecuaciones normales). De ello resulta:
\[\color{#648DC9}{\hat{\beta_1}} = \frac{\sum_{i=1}^{n} x_iy_i - n\overline{x}\overline{y}}{(n-1){s_x}^2}\]
\[\color{#CF6D68}{\hat{\beta_0}} = \overline{y} - \color{#648DC9}{\hat{\beta_1}}\overline{x}\]
Este no parece ser el mejor ajuste para los datos con los que contamos… 🙄
Las distancias verticales (residuos) de los puntos observados a la recta son “grandes”, por lo que la recta no proporciona un buen ajuste para los datos.
Intuitivamente, esta recta proporcionaría un mejor ajuste para los datos que la anterior (aunque no parece ser la que mejor ajusta).
Intuitivamente, esta recta proporcionaría un mejor ajuste para los datos que la anterior (aunque no parece ser la que mejor ajusta).
Como vimos, el Método de Mínimos Cuadrados nos provee los valores de \(\color{#CF6D68}{\hat{\beta_0}}\) y \(\color{#648DC9}{\hat{\beta_1}}\) que corresponden a la recta que mejor ajusta a los datos experimentales (que minimiza la \(SC_{Error}\)).
Para realizar el ajuste, vamos a usar statsmodels, un módulo de Python que proporciona funcionalidades para la estimación de diferentes modelos, así como para realizar análisis exploratorios y conducir tests estadísticos.
Ahora que ya exploramos en qué se basa el Método de Mínimos Cuadrados, realizaremos el ajuste empleando el dataset que contiene información acerca de 100 personas de esta población.
¿Cómo explicamos que haya variabilidad en las observaciones de la variable respuesta?
Porque las personas que medimos tienen distintos pesos (variable predictora incorporada en el modelo) <-> modelo
Por la influencia de causas aleatorias y de otras variables no incluidas en el modelo como predictoras <-> error
La Suma de Cuadrados Total (\(SC_{Total}\)) es una métrica que cuantifica la variabilidad total en la variable respuesta:
\[SC_{Total} = \sum_{i=1}^{n} ({y_i - \overline{y})}^2 = s_Y^2 (n - 1) \] Se puede demostrar que se puede descomponer en los siguientes términos (relacionar con la slide anterior):
\[SC_{Total} = \sum_{i=1}^{n} ({y_i - \overline{y})}^2 = SC_{Error} + SC_{Reg} \]
Matemáticamente, podemos expresar la descomposición de la \(SC_{Total}\) de la siguiente manera:
\[SC_{Total} = \sum_{i=1}^{n} ({y_i - \overline{y})}^2 = \sum_{i=1}^{n} ({y_i - \hat{y_i})}^2 + \sum_{i=1}^{n} ({\hat{y_i} - \overline{y})}^2 \]
COEFICIENTE DE DETERMINACIÓN (R2): mide la proporción de la variabilidad total en las observaciones de la variable respuesta Y que es explicada por el modelo:
\[R^2 = \frac{SC_{Reg}}{SC_{Total}} =1 - \frac{SC_{Error}}{SC_{Total}}\]
El rango de variación de este coeficiente es: \[ 0 \le R^2 \le 1 \]
Si el ajuste de la recta es perfecto, \(SC_{Error} = 0\) y \(R^2 = 1\): el modelo captura el 100% de la variabilidad en la respuesta.
Si no hay una dependencia lineal de la variable respuesta Y sobre la explicativa, \(SC_{Reg} = 0\) y \(R^2 = 0\).
IMPORTANTE: el coeficiente de determinación puede ser alto aún cuando el ajuste no sea del todo satisfactorio o sin que la relación sea lineal, por lo que debe emplearse con precaución.
La regresión lineal simple es útil para predecir una variable respuesta sobre la base de una única variable predictiva.
Sin embargo, en la práctica a menudo tenemos más de un predictor, con lo que podemos extender el modelo de regresión lineal simple para incorporar múltiples variables explicativas:
\[Y = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1}X_{1} + \color{darkgreen}{\beta_2}X_{2} + \color{darkviolet}{\beta_3}X_{3} + ... + \color{darkgrey}{\beta_p}X_{p} + \color{darkorange}{\varepsilon}\]
En este escenario, hablamos de regresión lineal múltiple.
Para estudiar este caso, vamos a volver a nuestro querido dataset de penguins, con el que trabajamos algunas clases atrás.
En ese momento, vimos que existía un grado de asociación lineal interesante (r = 0.87) entre la masa corporal (body_mass_g) y la longitud de la aleta (flipper_length_mm) de los pingüinos del archipiélago Palmer.
En este escenario, nos podría interesar ajustar un modelo que permita predecir la masa corporal del pingüino en función de la longitud de su aleta (¿Por qué?).
¡MANOS A LA OBRA!
🤓 Ajustar un modelo de regresión lineal simple que permita predecir la masa corporal de un pingüino de esta región en función de la longitud de su aleta.
🤓 Utilizar el modelo ajustado para predecir la masa corporal de un pingüino con una longitud de aleta de 207 mm.
🤔 Utilizar el modelo ajustado para predecir la masa corporal de un pingüino hembra con una longitud de aleta de 207 mm.
La ecuación de nuestro modelo ajustado es:
\[\hat{y} = \color{#CF6D68}{-5780.8} + \color{#648DC9}{49.7}~x\]
Coef. de determinación (R2) = 0.759.
En base al modelo ajustado, la masa corporal predicha para un pingüino con una aleta de 207 mm es: \(\hat{y}\) = 4504.1 g.
La ecuación de nuestro modelo ajustado es:
\[\hat{y} = \color{#CF6D68}{-5780.8} + \color{#648DC9}{49.7}~x\]
Coef. de determinación (R2) = 0.759.
En base al modelo ajustado, la masa corporal predicha para un pingüino con una aleta de 207 mm es: \(\hat{y}\) = 4504.1 g, ¡tanto para un pingüino macho como para uno hembra!.
Como existen diferencias visibles entre pingüinos macho y hembra, podríamos incorporar la variable sex
como predictora en nuestro modelo (además de flipper_length_mm
, of course!).
¿Qué tipo de variable es sex
?
Para incorporar un predictor cualitativo que sólo tiene dos niveles, como la variable sex
, creamos una variable dummy que puede tomar dos valores numéricos posibles:
\[X_{2} = \begin{cases} 1, & \text{si es un pingüino macho}.\\ 0, & \text{si es un pingüino hembra}. \end{cases}\]
Y usamos esta variable como un predictor en la ecuación de regresión. Esto resulta en el siguiente modelo:
\[Y = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1}X_{1} + \color{darkgreen}{\beta_2}X_{2} + \color{darkorange}{\varepsilon}\]
Ajustar este nuevo modelo por Mínimos Cuadrados implicará utilizar la información muestral para encontrar los valores de \(\mathbf{\color{#CF6D68}{\hat{\beta_0}}}\), \(\color{#648DC9}{\hat{\beta_1}}\) y \(\color{#4CAF50}{\hat{\beta_2}}\) que minimizan la \(SC_{Error}\).
La ecuación de nuestro modelo ajustado es:
\[\hat{y} = \color{#CF6D68}{-5410.3} + \color{#648DC9}{46.98}~x_{1}\\ + \color{#4CAF50}{347.85}~x_{2}\]
¡MANOS A LA OBRA!
🤓 Utilizar el modelo ajustado para predecir la masa corporal de un pingüino hembra con una longitud de aleta de 207 mm.
Este nuevo modelo de regresión lineal estándar provee resultados interpretables y funciona aceptablemente bien.
Sin embargo, en el planteo que hicimos estamos suponiendo que la forma en la que flipper_length_mm
influye sobre la respuesta es la misma independientemente del sexo del animal. Esto se refleja en el hecho de que las rectas de regresión ajustadas para los dos sexos son paralelas.
La diferencia en la masa corporal predicha para un pingüino macho en relación a uno hembra es un término aditivo representado por \(\color{darkgreen}{\beta_2}\).
\[R^2 = \frac{SC_{Reg}}{SC_{Total}} =1 - \frac{SC_{Error}}{SC_{Total}}\]
Dado que la \(SC_{Error}\) disminuye al aumentar el número de variables predictoras, el R2 se incrementa conforme se adicionan variables explicativas al modelo.
El R2 ajustado penaliza la inclusión innecesaria de variables que sólo generan ruido en el modelo:
\[R^2_{adj} = 1 - \frac{SC_{Error} / (n - p - 1)}{SC_{Total} / (n -1)}\]
Es una estadística útil cuando se quiere comparar modelos para decidir cuál es el que proporciona un mejor ajuste.
En nuestro caso, los valores de \(R^2_{adj}\) obtenidos fueron los siguientes:
ERROR CUADRÁTICO MEDIO (Mean-Squared Error, MSE):
\[ MSE = \frac{1}{n}\sum_{i=1}^{n} {(y_i - \hat{y_i})^2} = \frac{SC_{Error}}{n} \] Es una medida de la performance del modelo que evalúa qué tan “próximos” se encuentran los valores predichos de los reales u observados.
Al elevar al cuadrado la distancia entre la respuesta observada y la predicha (residuos), esta métrica penaliza fuertemente a los valores atípicos.
ERROR ABSOLUTO MEDIO (Mean Absolute Error, MAE):
\[ MAE = \frac{1}{n}\sum_{i=1}^{n} {|y_i - \hat{y_i}|}\] En este caso, en lugar de sumar los residuos elevados al cuadrado, se toman sus valores absolutos, lo que hace que el MAE sea inherentemente robusto a las posibles distorsiones causadas por la presencia de valores atípicos.