Modelado de ciencia de datos: cómo usar la regresión lineal con Python

Echando un vistazo a R², error cuadrático medio y más

por Brian Henriquez, Chris Kazakis y Dean Sublett

Foto de los creadores de campaña en Unsplash

Introducción y objetivos

La regresión lineal es una técnica ampliamente utilizada en la ciencia de datos debido a la relativa simplicidad en la implementación e interpretación de un modelo de regresión lineal.

Este tutorial recorrerá modelos de regresión lineal simples y múltiples del conjunto de datos 80 Cereales usando Python y discutirá algunas métricas de regresión relevantes, pero no asumimos experiencia previa con regresión lineal en Python. El conjunto de datos de 80 cereales se puede encontrar aquí.

Aquí hay algunos objetivos:

  • Comprender el significado y las limitaciones de R²
  • Obtenga información sobre las métricas de evaluación para la regresión lineal y cuándo usarlas.
  • Implemente un modelo de regresión lineal simple y múltiple con el conjunto de datos 80 Cereales

Explorando los datos

Después de descargar el conjunto de datos, importe los paquetes Python necesarios y el conjunto de datos de cereales en sí:

Salida de cereal.head ()

Aquí vemos que cada fila es una marca de cereal, y cada columna es una característica nutricional (proteína, grasa, etc.) o de identificación (fabricante, tipo) del cereal. Observe que la calificación es la respuesta o la variable dependiente.

A continuación, creamos un gráfico de pares de las correlaciones entre cada característica del conjunto de datos, y de esta visualización seleccionamos tres variables predictoras: calorías, fibra y azúcares. El gráfico que muestra cada correlación es demasiado grande para compartirlo aquí, pero podemos verlo más de cerca con un gráfico de pares más pequeños que incluye solo nuestras variables predictoras. Usando seaborn.pairplot, podemos ver tres diagramas de dispersión con líneas de mínimos cuadrados ajustados:

Gráfico de pares de cada variable predictiva con la variable de respuesta

Ahora que estamos más familiarizados con los datos, podemos comenzar a configurar nuestros modelos de regresión lineal.

Nota: En aras de transmitir fácilmente los conceptos, no calculamos los valores R² y R² ajustados utilizando una división de prueba / tren de los datos. Pero reconozca que el uso de una división prueba / tren de observaciones seleccionadas al azar se considera la mejor práctica, y así es como presentamos nuestros errores y AIC / BIC cerca del final del tutorial.

El modelo de regresión lineal

Queremos discutir R² y su importancia para los modelos de regresión lineal. Pero para entender exactamente qué es R², primero debemos entender qué es un modelo lineal. Veamos un diagrama de dispersión que compara las calorías en una porción de cereal y su calificación:

Diagrama de dispersión de calificación y calorías

Podemos ver claramente que las porciones de cereal con más calorías generalmente reciben críticas más pobres. Si suponemos que existe alguna relación entre estas dos variables, entonces podemos construir un modelo que prediga la calificación de un cereal en función de la cantidad de calorías.

Para verificar que la relación es, de hecho, lineal, podemos trazar los residuos de nuestro modelo en un gráfico y buscar patrones. Un patrón claro en el residual podría sugerir que otro modelo, como un cuadrático o logarítmico, puede describir mejor la relación entre las dos variables. Veamos los residuos:

No hay un patrón claro en los residuos, por lo que no hay evidencia de que haya una ecuación no lineal que se ajuste mejor.

Para la regresión lineal, nos interesará la fórmula:

x es la variable predictora para la variable de respuesta y

Para hacer un modelo, podemos usar el método scipy linregress.

Y obtenemos el siguiente resultado:

  • LinregressResult (pendiente = -0.49701318979564285, intercepción = 95.78802384439143, rvalue = -0.6893760311652586, pvalue = 4.1402774000064275e-12, stderr = 0.06030617024600228)

El primer elemento es b_1, el segundo es b_0 y el tercer valor es el valor R, también conocido como coeficiente de correlación. El valor R varía de 1 a -1 y mide la fuerza de la relación entre las variables explicativas y una variable de respuesta. El valor R para calorías versus calificación es -.689, lo que muestra que existe una fuerte relación negativa entre las dos variables. Cuanto más lejos esté el valor R de 0, mejor será un modelo para predecir valores.

Al cuadrar R, obtenemos el coeficiente de determinación, R². R² es un valor que representa qué porcentaje de la variación en la variable y puede explicarse por la variación en la variable x. Un valor alto de R² indica un modelo más fuerte. Veamos algunos valores de R² en nuestro conjunto de datos:

Imprimimos lo siguiente:

  • R² del modelo con predictor de copa: 0.0412740112014871
  • R² del modelo con predictor de calorías: 0.4752393123451636

Estos valores de R² nos indican que las calorías son un mejor predictor de calificación que las tazas.

La regresión lineal simple es útil, pero a menudo queremos ver cómo se pueden usar varias variables para predecir una sola variable. Obtengamos una matriz 2D de predictores del cereal tomando una rebanada con todas nuestras variables de interés. las calorías, la fibra y el azúcar parecían ser buenos predictores cuando revisamos la gráfica de pares de correlaciones anteriormente, así que veamos un modelo que usa esos tres:

Obtenemos el siguiente resultado:

  • R²: 0.8483669504178866
  • R² ajustado: 0.8070124823500374

Encontramos que el valor de R² ha aumentado de .475 en el modelo de una variable (con las calorías como predictor), a .848. Esto parece indicar que el poder predictivo de nuestro modelo ha aumentado.

Sin embargo, agreguemos un pobre predictor, cups, a este modelo de regresión lineal múltiple y veamos qué sucede:

Este código da el siguiente resultado:

  • R²: 0.8490487016343364
  • R² ajustado: 0.788668182288071

Recuerde que el número de tazas por porción de cereal parecía no tener correlación con la calificación del consumidor en el caso de variable única. Pero cuando lo agregamos al modelo, el R² general aumenta a .849, lo que implica que el poder predictivo del modelo mejoró. Sin embargo, según lo que sabemos, este modelo de cuatro variables no debería ser mejor que el modelo de tres variables. En virtud de cómo se calcula el valor R², agregar más variables a un modelo siempre aumentará el valor R². Entonces, necesitamos comparar los valores ajustados de R², lo que mitiga el aumento de R² debido a variables adicionales. La fórmula para el R² ajustado es

N-tamaño de muestra total, p-número de predictores

Usando esto, encontramos que el modelo de tres variables tiene un R² ajustado de .807, mientras que el modelo de cuatro variables tiene un R² ajustado de .788. Por lo tanto, el modelo de tres variables es mejor por esta métrica.

R² es una de las métricas más importantes para evaluar qué tan bien un modelo lineal se ajusta a los datos, por lo que es importante tener una comprensión intuitiva de lo que significa. Conocer las limitaciones de R² y cómo se pueden mitigar esas limitaciones es igualmente importante al implementar modelos de regresión lineal.

Error Cuadrático Medio (MSE)

Los modelos de regresión tienen varias métricas de evaluación diferentes. Una de las métricas más populares y lo que discutiremos primero es el error cuadrático medio (MSE).

Fuente

MSE es una métrica de evaluación que mide el promedio de las diferencias al cuadrado entre los valores observados y los pronosticados. En otras palabras, MSE nos dice cuán preciso o inexacto es nuestro modelo de regresión lineal: cuanto más bajo es el MSE, "mejor" es el modelo a la hora de predecir valores. Encontremos el MSE de nuestro modelo de regresión:

Nuestra variable mse regresa como 26.6329.

Otra medida de evaluación a nuestra disposición es el error cuadrático medio (RMSE), que es simplemente la raíz cuadrada de nuestro MSE. Usando la función de raíz cuadrada del módulo matemático Python, sqrt (mse) regresa como 5.1607.

Es importante tener en cuenta que nuestro valor RMSE comparte las mismas unidades que la variable de respuesta (tomamos la raíz cuadrada de los errores al cuadrado). Nuestro valor RMSE de 5.1607 cae relativamente bajo en el rango 0–100 de la variable de calificación, por lo que nuestro modelo de regresión lineal múltiple es "bueno" para predecir la calificación de una marca de cereales. Pero hay otros errores que podemos usar.

Error absoluto medio (MAE)

La próxima métrica de evaluación de regresión que consideraremos es el error absoluto medio (MAE).

Fuente

Dado que MSE cuadra la diferencia de los residuos, las disparidades más grandes entre los valores reales y los predichos son "castigados" más severamente por MSE que por MAE. Debido a los términos al cuadrado, MSE es más sensible a los valores atípicos que MAE.

Si decidimos que los valores atípicos en nuestro conjunto de datos no fueron significativos en el análisis de los datos, podemos recurrir a MAE antes que a MSE ya que los residuos de los valores atípicos no se exagerarían por la cuadratura de los residuos. Encontremos el MAE:

Nuestra variable mae devuelve 3.6153. Nuestro MAE es relativamente pequeño dado el rango de calificación 0–100, por lo que nuestro MAE indica que nuestro modelo es razonablemente preciso en sus predicciones.

Error porcentual absoluto medio (MAPE)

La medida de evaluación de regresión final que consideraremos es el error porcentual absoluto medio (MAPE).

Fuente

MAPE proporciona la precisión de los modelos predictivos como un porcentaje. Observe la similitud en las fórmulas MAE y MAPE. Al igual que MAE, MAPE no está muy influenciado por los valores atípicos. Sin embargo, utilice MAPE con precaución porque

  • MAPE es propenso a la división por cero errores (ver el denominador dentro de la suma);
  • MAPE puede crecer mucho si los valores reales son muy pequeños (nuevamente, vea la operación de división en la suma);
  • MAPE está sesgado hacia predicciones que son más pequeñas que los valores observados.

Busquemos el MAPE para nuestro modelo:

Nuestra función MAPE devuelve el siguiente porcentaje: 8.458%. Por lo tanto, nuestro pronóstico está "apagado" en un 8,5% en promedio.

AIC y BIC

AIC (Criterio de información de Akaike) y BIC (Criterio de información bayesiano) son métodos objetivos para evaluar sus modelos de regresión y determinar el mejor subconjunto de predictores (qué modelo se ajusta mejor).

Cuando agrega parámetros a su modelo, siempre se ajustará un poco mejor. Pero entonces corre el riesgo de perder información sobre el patrón subyacente real. Por lo tanto, existe una compensación entre el número de parámetros y la cantidad de error que representa su modelo. AIC y BIC evalúan la capacidad de los modelos para dar cuenta de la variación adicional en la variable que está prediciendo pero sin sobreajustar el modelo.

AIC

AIC le permite estimar la cantidad de información perdida en sus modelos para que pueda comparar qué modelos funcionan mejor y elegir el subconjunto más apropiado de predictores. Más específicamente, el valor AIC observa la distancia relativa entre la función de probabilidad real de los datos y la función de probabilidad ajustada de su modelo. Cuanto menor sea esa distancia, más cerca estará el modelo de la representación real de sus datos. AIC se denota por esta fórmula:

N-número de observaciones, K-número de parámetros ajustados + 1

Si comparamos el ajuste de dos modelos usando el método AIC, el modelo con el valor AIC más bajo tiene el mejor ajuste.

Encontremos los valores de AIC de nuestros dos modelos de regresión múltiple que utilizamos anteriormente. Uno tiene tres predictores y el otro tiene cuatro. Primero definiremos los valores que conectaremos a la fórmula, y luego ejecutaremos la fórmula:

Esto da el siguiente resultado:

  • AIC del modelo con tres predictores: 60.51438447233831
  • AIC del modelo con cuatro predictores: 62.31365180026097

Por lo que vemos, el modelo con tres predictores tiene un valor AIC más bajo y, por lo tanto, se ajusta mejor que el modelo con cuatro predictores (pero no mucho en este ejemplo).

BIC

BIC es similar a AIC, pero es mucho más estricto en términos de penalizar su modelo por agregar más parámetros. Se denota por esta fórmula:

N-número de observaciones, K-número de parámetros ajustados + 1

Si comparamos el ajuste de dos modelos usando el método BIC, el modelo con el valor BIC más bajo tiene el mejor ajuste, similar al proceso para el método AIC.

Busquemos los valores BIC para los mismos dos modelos que acabamos de usar. Aquí la única diferencia es la penalización por la que multiplicamos el número de parámetros por:

Esto da el siguiente resultado:

  • BIC del modelo con tres predictores: 63.60473936129743
  • BIC del modelo con cuatro predictores: 66.17659541145987

Por lo que vemos aquí, el modelo con tres predictores tiene un valor BIC más bajo y, por lo tanto, se ajusta mejor que el modelo con cuatro predictores. Dado que la penalización BIC es más estricta que la penalización AIC, los valores para el método BIC son mayores que el método AIC para sus respectivos modelos.

Debido a la diferencia en la penalización, AIC puede elegir un modelo con más parámetros que BIC. Se recomienda que utilicen AIC y BIC juntos y tomen decisiones sobre sus modelos en función de ambos conjuntos de resultados. En este caso, el AIC y el BIC acordaron entre sí y eligieron los mismos modelos.

Vocabulario clave

En resumen, discutimos

  • R²: un indicador de qué tan fuerte el modelo de regresión lineal predice la variable de respuesta
  • R² ajustado: un indicador de qué tan fuerte el modelo de regresión lineal múltiple explica la varianza en la variable dependiente mientras corrige el número de parámetros en el modelo
  • MSE (error cuadrático medio): una métrica de evaluación que castiga en gran medida los valores atípicos; probablemente el primer error que calculará y usará cuando los valores atípicos representen un fenómeno real del conjunto de datos
  • RMSE (error cuadrático medio): la raíz cuadrada de MSE; comparte las mismas unidades que la variable de respuesta, por lo que RMSE puede ser más "interpretable" que MSE
  • MAE (error absoluto medio): una métrica de evaluación utilizada para disminuir la importancia de los valores atípicos al medir el error; se usa cuando los valores atípicos no representan un fenómeno real del conjunto de datos
  • MAPE (error porcentual absoluto medio): una medida de la precisión de un modelo de regresión como porcentaje; propenso a errores de tiempo de ejecución o valores inusualmente grandes cuando la variable de respuesta toma valores pequeños
  • AIC (Criterio de información de Akaike): una evaluación de la cantidad de información perdida en diferentes modelos que penaliza el aumento de los parámetros. Independientemente del tamaño de sus datos, siempre tiene la posibilidad de elegir un modelo demasiado grande. Mejor usado en conjunto con BIC.
  • BIC (Criterio de información bayesiano): similar a AIC pero penaliza más. Independientemente del tamaño de sus datos, siempre tiene la posibilidad de elegir un modelo demasiado pequeño. Mejor usado en conjunción con AIC.

Conclusión

En este tutorial, mostramos cómo implementar modelos de regresión lineal simples y múltiples con Python y los diferentes métodos para evaluar estos modelos y sus errores.

Cuando trabaje con sus propios conjuntos de datos, puede elegir usar cualquiera de estos métodos para evaluar sus modelos de regresión y error. Sin embargo, puede ser de su interés utilizar una cantidad de estos y ver cómo sus resultados se alinean o difieren para decidir cuál de sus modelos tiene la mejor representación de sus datos.

Ahora debería sentirse más cómodo con la implementación de sus propios modelos de regresión lineal y ser más consciente de las similitudes y diferencias entre todas las métricas de regresión discutidas.