Scikit-Learn vs statsmodels en regresión lineal

Resumen

La regresión lineal en Python se puede resolver de varias formas, y elegir la correcta depende del set de datos y del caso de negocio. Aquí te muestro cómo pasar del cálculo manual a dos aproximaciones más prácticas: la librería Scikit-Learn y un enfoque estadístico con statsmodels, ideal si quieres analizar la significancia de cada coeficiente.

Cómo entrenar una regresión lineal con Scikit-Learn

El primer paso es instanciar el modelo en una variable y entrenarlo con tus datos. Antes de entrenar, necesitas aplicar un reshape a la variable independiente para que los datos queden organizados en una sola columna, como una tablita. Después defines la variable objetivo y ejecutas el ajuste.

Una vez entrenado el modelo, puedes imprimir tres elementos clave:

  • El intercepto, que es el punto donde la recta cruza el eje Y.
  • Los coeficientes, que indican el peso de cada variable.
  • La R cuadrada, que mide qué tan bien se ajusta el modelo.

Al ejecutar la celda notarás algo interesante: los valores son prácticamente idénticos a los que obtuviste resolviendo la regresión a mano [01:00]. ¿Por qué? Porque internamente Scikit-Learn aplica una lógica muy parecida a la del cálculo con matrices transpuestas.

¿Qué hace Scikit-Learn al entrenar una regresión lineal? Calcula los coeficientes que minimizan el error entre los valores predichos y los reales, usando una aproximación matricial similar a la manual.

Por qué usar statsmodels para un enfoque estadístico

Los métodos anteriores se evalúan principalmente a través de los errores. El enfoque con statsmodels cambia la perspectiva: te permite revisar si cada coeficiente es estadísticamente significativo dentro del modelo y decidir si conviene mantenerlo o sacarlo.

El flujo es directo:

  1. Generas una variable que añade una constante al dataset, que será el intercepto.
  2. Ejecutas el modelo de mínimos cuadrados ordinarios (OLS) comparándolo con esa constante.
  3. Entrenas el modelo y obtienes un reporte completo.

Ese reporte incluye coeficientes, errores, p-values, R cuadrada y todo lo necesario para una evaluación estadística rigurosa. Para variables como X1, X2 y X3 verás no solo su valor, sino también qué tanta significancia aportan al modelo [02:30].

Si vienes de carreras cercanas a la estadística, esto te va a sonar familiar: una de las primeras cosas que se enseñan en regresión manual es decidir si meter o sacar un coeficiente según su significancia. Y si no vienes de ese mundo, no te preocupes, es simplemente otra ruta para llegar al mismo destino.

¿Qué es un p-value en regresión lineal? Es un indicador que te dice si un coeficiente aporta información real al modelo. Valores bajos (típicamente menores a 0.05) sugieren que la variable es significativa.

Cómo comparar y visualizar el rendimiento de los modelos

Hoy es más común usar librerías preestablecidas porque ofrecen soluciones rápidas y eficientes. Aun así, comparar resultados entre los tres enfoques (manual, Scikit-Learn y statsmodels) te da una visión más completa.

Qué gráficas revisar después de entrenar el modelo

Aunque el código de visualización parezca largo, en realidad solo estás definiendo título, eje X y eje Y. Las gráficas clave para una regresión múltiple son:

  • Residuales contra predicción, donde la línea punteada marca el ajuste esperado.
  • Cuantiles teóricos, que te ayudan a evaluar la normalidad.
  • Valores reales contra valores predichos, con los puntos como datos reales y la línea punteada como predicción.

Cómo evaluar los supuestos de la regresión lineal

Una regresión lineal solo es confiable si cumple ciertos supuestos. La inspección visual te permite revisar tres puntos:

  • La dispersión de residuos frente a las predicciones.
  • La normalidad (o no normalidad) de los residuos.
  • La calidad del ajuste general.

Si alguno de estos supuestos falla, probablemente necesites transformar variables o probar otro tipo de modelo.

Tu reto: implementar una regresión lineal completa

Ahora te toca a ti. Implementa un modelo de regresión lineal de principio a fin con estos pasos:

  1. Elige un dataset real, ya sea de Kaggle, datos abiertos o uno generado por ti.
  2. Realiza un análisis exploratorio de los datos.
  3. Implementa el modelo usando al menos dos enfoques distintos.
  4. Evalúa el rendimiento con diferentes métricas.
  5. Analiza los coeficientes e interpreta su impacto.
  6. Valida los supuestos del modelo.

Déjame en los comentarios cómo te fue al construir tu modelo y qué problemas encontraste en el camino. En la siguiente sesión vamos a entrar al aprendizaje no supervisado, el puente que necesitas para entender modelos más sofisticados y lo que sucede detrás del telón.