Regresión Lineal: Manual práctico en Python

Desde preparar los datos hasta leer el reporte de regresión.

Regresión Lineal: Manual práctico en Python

En esta sección, crearemos una regresión con una base de datos pública, analizaremos el resultado que el reporte del software nos arroja y haremos pruebas a las hipótesis.

Piensa en este post como un cheat sheet (en México los llamamos “acordeones”, porque se hacían en hojitas de papel que se doblaban asemejando al instrumento musical) o un manual práctico para hacer regresiones lineales usando mínimos cuadrados ordinarios. Regresa aquí siempre que necesites.

Si hay algún término que te parezca extraño, recuerda que hicimos un par de posts con la teoría del modelo de mínimos cuadrados.

En este post

  • Aprende a  importar y explorar la base de datos
  • Tips para limpiar los datos
  • Hacer una regresión por mínimos cuadrados
  • Aprende a leer el reporte de regresión que arroja `statsmodels`.

Paso 1. Explora la base de datos

Usaremos la base de datos de precios de casas de Kaggle para este ejercicio. Puedes descargarla directamente desde la página de Kaggle. El archivo de datos tendrá extensión *.csv, con variables separadas por comas.

En la sección "Data" de Kaggle hay cuatro archivos disponibles: uno es una descripción de los datos con información sobre cada columna. La base de datos que descargaremos tiene 81 columnas, y debemos identificar cuáles son útiles para describir los precios de las casas.

El archivo de prueba es igual al de entrenamiento, excepto que no incluye los precios. La idea es entrenar el modelo con la base de datos de entrenamiento y usar los parámetros obtenidos para predecir los precios en el archivo de prueba.

Paso 2: Importa los datos

Primero, importamos los datos de la base de entrenamiento. Luego, verificamos si hay valores nulos y los eliminamos o reemplazamos. También es importante convertir las variables categóricas a números para que puedan ser usadas en el modelo de regresión lineal.

El siguiente bloque de código carga la base de datos "/train.csv" utilizando la librería pandas y se muestra un resumen de los primeros registros con df.head().

# Módulos
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf

# Cargar la base de datos
df = pd.read_csv("../data/house-prices/train.csv")
df.head()

Aparte de **pandas** usaremos **statsmodels** para hacer la regresión y nos aseguramos de cargar las funciones que nos permiten escribir los modelos como una fórmula. Veremos eso más adelante.

El módulo pandas tiene una función que nos permite cargar los archivos csv. Lo que viene entre comillas del bloque anterior depende de en dónde se ubique tu archivo en la computadora. Cambia ese elemento y corre el código, te debería mostrar una tabla en pantalla con las primeras observaciones de la base de datos.

Primero, importamos los datos de la base de entrenamiento utilizando la librería pandas. Luego, verificamos si hay valores nulos y los eliminamos o reemplazamos. También es importante convertir las variables categóricas a números para que puedan ser usadas en el modelo de regresión lineal.

Usamos el módulo pandas para cargar la base de datos /train.csv y mostrar un resumen de los primeros registros con df.head(). Aparte de pandas, usamos statsmodels para hacer la regresión y nos aseguramos de cargar las funciones que nos permiten escribir los modelos como una fórmula.

El siguiente bloque de código carga la base de datos /train.csv y muestra un resumen de los primeros registros con df.head():

# Módulos
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf

# Cargar la base de datos
df = pd.read_csv("../data/house-prices/train.csv")
df.head()

La base de datos

Correr el código anterior genera una tabla similar a la que ves aquí en la pantalla, que muestra cómo se compone la base de datos.

Existen otros trucos para comprender mejor cómo es la base de datos. Si ejecutamos df.columns, Python nos mostrará una lista con los nombres de todas las columnas de la base de datos. Al ejecutar df.shape, el resultado nos indicará el número de filas y de columnas que contiene la tabla, respectivamente: en nuestro caso, la base de datos tiene 1460 filas y 81 columnas.

Leer el artículo completo

Registrarse ahora para leer el artículo completo y acceder a todos los artículos por solo suscriptores.

Suscribirse
¿Ya tienes una cuenta? Iniciar sesión

¡Genial! Te has registrado exitosamente.

¡Bienvenido de vuelta! Has iniciado sesión correctamente.

Te has suscrito correctamente a Escribe tu primer paper de Economía.

¡Éxito! Revisa tu correo electrónico para obtener el enlace mágico para iniciar sesión.

¡Éxito! Se ha actualizado la información de facturación.

No se actualizó tu información de facturación.

Sígueme en Mastodon