= modelo.fittedvalues, y = modelo.resid, lowess = True, line_kws = dict(color = 'red'))
sns.regplot(x = 0, color = 'black', linestyle = '--'); plt.axhline(y
UNIDAD 6 - Parte 2
La relación que existe entre \(Y\) y la/s variable/s predictora/s \(X_1,X_2,...,X_p\) puede escribirse de la siguiente forma:
\[Y = f(X_1,X_2,...,X_p) + \varepsilon\] \(f\) es una función fija pero desconocida de \(X_1,X_2,...,X_p\), y \(\varepsilon\) es un término de error aleatorio que contiene otras variables no incluidas explícitamente en el modelo como predictoras, así como variaciones aleatorias no medibles.
Utilizamos el aprendizaje estadístico para estimar o modelar \(f(X_1,X_2,...,X_p)\).
PARA HACER PREDICCIONES: en muchas situaciones, no puede obtenerse fácilmente el valor de \(Y\) (respuesta), pero sí se tiene disponible la información sobre un conjunto de variables (predictores) \(X_1,X_2,...,X_p\). Podemos predecir \(Y\) usando:
\[\hat{y} = \hat{f}(X_1,X_2,...,X_p)\] Bajo esta concepción, \(\hat{f}\) se suele tratar como una caja negra, en el sentido de que no estamos particularmente interesados en la forma matemática exacta de \(\hat{f}\), sino en las predicciones que podemos realizar de \(Y\) a partir de ella.
PARA HACER INFERENCIAS: en este caso, estamos más interesados en conocer la forma matemática en la que los predictores \(X_1,X_2,...,X_p\) influyen sobre \(Y\), y nos hacemos preguntas como:
¿Qué predictores están asociados con la respuesta? ¿Cuáles son los más importantes?
¿Cuál es la relación entre la respuesta y cada predictor?
La relación entre \(Y\) y cada predictor… ¿puede ser resumida utilizando una ecuación lineal o necesitamos formas más complicadas?
Por ejemplo, podríamos querer modelar el precio de una propiedad en función de distintos predictores como: superficie, tasa de criminalidad, barrio de la ciudad, distancia al río, calidad del aire, etc.
Podríamos querer responder: ¿cuánto más cuesta una casa si tiene vista al río? O tal vez simplemente nos interese predecir el valor de una casa en función de las características que tiene.
O quizás nos interesen ambas… ¿por qué no?
Primero le dimos una forma matemática (bastante simple) a esa \(f\):
\[f(X_1,X_2,...,X_p) = \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}\]
Primero le dimos una forma matemática (bastante simple) a esa \(f\):
\[f(X_1,X_2,...,X_p) = \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}\]
Luego, a partir de un conjunto de datos utilizamos un método de aprendizaje estadístico para ajustar el modelo, es decir, para estimar los parámetros \(\color{darkred}{\beta_0}\), \(\color{darkblue}{\beta_1}\), \(\color{darkgreen}{\beta_2}\), etc.
Este approach es paramétrico, porque reduce el problema de estimar \(f\) al de estimar un conjunto de parámetros.
Ante múltiples predictores, ¿cómo evaluamos cuáles son los que realmente están asociados con la respuesta? Este procedimiento se conoce como selección de variables.
Una vez ajustado un modelo, podemos realizar TESTS DE HIPÓTESIS acerca de los coeficientes o parámetros asociados con cada uno de los predictores para evaluar si están realmente relacionados con la respuesta.
Los tests de hipótesis son procedimientos estadísticos empleados para tomar una decisión acerca del valor de uno o más parámetros poblacionales, en base a la información de una muestra.
Por ejemplo, supongamos que pensamos en ajustar un modelo con la siguiente forma para la función \(f\):
\[f(X_1, X_2) = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1}X_{1} + \color{darkgreen}{\beta_2}X_{2}\] Nos puede interesar evaluar si existe o no relación entre \(X_1\) e \(Y\), es decir, si este predictor es útil para modelar \(Y\) o podemos prescindir de él.
En este escenario, nos interesa testear la hipótesis nula (H0) de que:
H0: No hay relación entre \(X_1\) e \(Y\)
versus la hipótesis alternativa (H1):
H1: Hay relación lineal entre \(X_1\) e \(Y\)
Matemáticamente, esto equivale a plantear el siguiente test de hipótesis:
H0: \(\color{darkblue}{\beta_1} = 0\)
versus
H1: \(\color{darkblue}{\beta_1} \neq 0\)
En el caso de que H0 se cumpla, el modelo sería igual a \(Y = \color{darkred}{\beta_0} + \color{darkgreen}{\beta_2}X_{2} + \color{#F4442E}{\varepsilon}\) y \(X_1\) no estaría asociada linealmente con \(Y\).
Para resolver el ensayo de hipótesis, necesitamos determinar si \(\color{#648DC9}{\hat{\beta_1}}\), nuestro estimador de \(\color{darkblue}{\beta_1}\), está lo suficientemente alejado de cero como para que podamos afirmar “con confianza” que \(\color{darkblue}{\beta_1} \neq 0\).
¿Y cómo sabemos cuánto es suficiente?
Podemos usar el enfoque de la probabilidad asociada (p-value o valor-p)
La probabilidad asociada es una medida de cuánta evidencia tenemos, en el marco del modelo propuesto y con los datos con los que contamos, de que sea cierta la hipótesis nula. Por lo tanto, valores pequeños de p-value nos llevarán a pensar que el predictor en cuestión está relacionado con la respuesta.
En la práctica, se suele considerar que valores de p-value < 0.05 son suficientes para considerar falsa a la hipótesis nula.
Si lo queremos ver de otra manera, extender lo anterior a ambos predictores implicaría decidir qué modelo es el mejor entre los siguientes (para la función \(f\)):
Modelo 1: \(f(X_1, X_2) = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1}X_{1} + \color{darkgreen}{\beta_2}X_{2}\)
Modelo 2: \(f(X_1) = \color{darkred}{\beta_0} + \color{darkblue}{\beta_1}X_{1}\)
Modelo 3: \(f(X_2) = \color{darkred}{\beta_0} + \color{darkgreen}{\beta_2}X_{2}\)
Modelo 4: \(f = \color{darkred}{\beta_0}\)
O sea, decidir cuál es el mejor conjunto de predictores.
Para esto, puede calcularse el R2 ajustado para cada modelo, ya que 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)}\] Entre modelos con distinta cantidad de predictores, se elige el que presenta el mayor \(R_{adj}^2\).
Una métrica muy utilizada para evaluar la calidad del ajuste es el 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 qué tan “próximos” se encuentran los valores predichos de los reales u observados.
Al elevar al cuadrado la distancia entre lo que predijimos y lo que es correcto (residuos), esta métrica penaliza fuertemente a los valores atípicos.
El MSE se calcula utilizando los datos de entrenamiento que se emplearon para ajustar el modelo (es un training MSE).
Sin embargo, en general estamos más inteeresados en la calidad de las predicciones que el modelo pueda hacer a partir de datos que nunca vio (datos de testeo). O sea, requerimos un test MSE.
Más que seleccionar el modelo que presente un menor training MSE, nos quisiéramos quedar con aquel que nos proporcione el menor test MSE. ¿Cómo hacemos esto?
En algunos casos, tenemos disponible un conjunto de observaciones que no fueron usadas para entrenar los modelos de aprendizaje estadístico y podemos utilizarlos como datos de testeo para quedarnos con el que minimice el MSE.
¿Y si no tenemos datos de testeo? ¿Por qué no pensar en elegir el modelo que minimiza directamente el training MSE que podemos calcular sobre los datos de entrenamiento?
El training MSE (línea gris) disminuye de forma continua, ya que el modelo se ajusta cada vez más a las particularidades de los datos de entrenamiento a medida que aumenta su complejidad.
Por otro lado, el test MSE (línea roja) disminuye inicialmente conforme el modelo se ajusta mejor a los datos de entrenamiento, ya que también lo hace sobre los datos de testeo. Sin embargo, alcanza un valor mínimo en una situación intermedia para luego volver a aumentar conforme el modelo se vuelve más y más complejo, perdiendo así capacidad de generalización.
Cuando un modelo ajustado nos proporciona un training MSE pequeño junto con un gran test MSE, se dice que estamos sobreajustando los datos (fenómeno del overfitting).
Esto ocurre porque nuestro modelo de aprendizaje estadístico está muy enfocado en encontrar patrones en los datos de entrenamiento que en realidad son provocados por fluctuaciones aleatorias.
Cuando sobreajustamos los datos de entrenamiento, el test MSE se hace muy grande porque esos supuestos patrones simplemente no existen en los datos de testeo (ni en la realidad).
En esta sección exploraremos algunas otras cuestiones que no debemos pasar por alto al evlauar un modelo de regresión lineal.
NO LINEALIDAD DE LA RELACIÓN RESPUESTA-PREDICTOR.
El modelo de regresión lineal asume que hay una relación lineal entre los predictores y la respuesta.
Si la relación verdadera está lejos de ser lineal, virtualmente todas las conclusiones que saquemos a partir del ajuste son dudosas.
NO LINEALIDAD DE LA RELACIÓN RESPUESTA-PREDICTOR.
Los gráficos de residuos (\(e_i\)) vs. los valores predichos (fitted values, \(\hat{y_i}\)) son muy útiles para identificar falta de linealidad.
Si el gráfico sugiere que existen asociaciones no lineales en los datos, un enfoque simple es utilizar transformaciones no lineales de los predictores en el modelo de regresión, como \(log(X)\), \(\sqrt{X}\) y \(X^2\).
FALTA DE NORMALIDAD. Un importante supuesto del modelo de regresión lineal es que los errores \(\varepsilon\) tienen distribución normal.
Posibles incumplimientos de esta asunción pueden observarse gráficamente al representar la distribución de los residuos del modelo (histograma, gráfico de densidad) o, aún mejor, realizando un Normal Q-Q Plot.
HETEROCEDASTICIDAD. Otro importante supuesto del modelo de regresión lineal es que los errores \(\varepsilon\) tienen variancia o variabilidad constante.
La observación de patrones tipo embudo en el gráfico de residuos vs. fitted values es un indicador de heterocedasticidad.
HETEROCEDASTICIDAD.
Cuando nos encontramos con este problema, una posible solución es realizar alguna transformación sobre la respuesta \(Y\) usando una función cóncava, como \(log(Y)\) o \(\sqrt{Y}\).
PRESENCIA DE OUTLIERS. En el marco del ajuste de modelos, un outlier es un punto para el que el valor observado \(y_i\) está “lejos” del valor predicho por el modelo.
PRESENCIA DE OUTLIERS.
Muchas veces no causan grandes problemas en el ajuste por mínimos cuadrados (estimaciones de parámetros), pero sí pueden influir sobre ciertas medidas utilizadas para hacer inferencia a partir del modelo ajustado (¡pesan mucho en la \(SC_{error}\)!).
COLINEARIDAD/MULTICOLINEARIDAD.
La colinearidad se presenta cuando dos o más variables predictoras están íntimamente asociadas (correlacionadas) y resulta difícil separar y evaluar los efectos individuales de cada una sobre la respuesta.
Una forma de detectarla es analizando la matriz de correlación de los predictores (aunque no siempre es sencillo hacerlo de este modo, porque puede existir multicolinearidad).
A continuación presentaremos herramientas para la construcción de los gráficos de residuos mencionados anteriormente, tomando como referencia los correspondientes al modelo para la masa de los pingüinos del Archipiélago Palmer que considera al sexo y a la long. aleta como predictoras:
\[\hat{y} = \color{#CF6D68}{−5410.3} + \color{#648DC9}{46.98}~x_{1}\\ + \color{#4CAF50}{347.85}~x_{2}\]
Donde \(x_1\) = long. aleta y \(x_2\) = variable dummy que toma el valor 1 si el pingüino es macho y 0 en caso contrario.
Gráfico de residuos vs. fitted values:
Normal Q-Q Plot de residuos
En el código utilizado para construir el primer gráfico, lowess = True
agrega la línea suavizada que sigue la forma general de los puntos.
En el Normal Q-Q Plot, la recta roja (line = 's'
) representa el comportamiento esperado para una distribución normal de los residuos.
Como vimos, ajustar un modelo de regresión consiste en hallar una ecuación matemática que describa, de la mejor manera posible, la forma en la cual una variable respuesta \(Y\) se relaciona con uno o más predictores.
Esto implica encontrar el conjunto de coeficientes que minimizan alguna de las métricas definidas en función de los residuos del modelo: \(SC_{error}\) (Suma de cuadrados de error, SSR), MSE (Error cuadrático medio), MAE (Error absoluto Medio), etc.
SOLUCIÓN CERRADA. Una forma para obtener estos coeficientes es a través de una SOLUCIÓN CERRADA. Como consecuencia de la aplicación del Método de Mínimos Cuadrados, en el marco de un ajuste de un modelo de regresión lineal simple, hallamos expresiones matemáticas (fórmulas) para el cálculo de las estimaciones de los parámetros del modelo:
\[\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}\]
ALGORITMO DE OPTIMIZACIÓN ITERATIVO. También es posible emplear un ENFOQUE ITERATIVO basado en algún otro algoritmo de optimización, como el descenso de gradiente, ampliamente utilizado en el entrenamiento de modelos de machine learning y redes neuronales. Este método permite encontrar un conjunto de coeficientes que minimice una función convexa conocida como función de pérdida o de costo (como el MSE en regresión), guiando al modelo hacia una solución óptima mediante ajustes sucesivos en la dirección de máximo descenso de dicha función.
ALGORITMO DE OPTIMIZACIÓN ITERATIVO.
https://mlu-explain.github.io/linear-regression/. Esta página ofrece una explicación detallada acompañada de visualizaciones interactivas sobre el análisis de regresión lineal, cubriendo desde los conceptos básicos y la interpretación de los parámetros hasta temas más avanzados como el ajuste del modelo y las métricas de evaluación.
Si bien aborda temas que escapan a los alcances de este curso, es un buen recurso para entender los fundamentos y desafíos en la aplicación de estas herramientas.