Statsmodels: análisis estadístico en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a Statsmodels

Statsmodels es una potente librería de Python diseñada para realizar análisis estadístico de datos. Proporciona herramientas para construir modelos de regresión, estimar parámetros, probar hipótesis estadísticas y analizar series temporales. Statsmodels se utiliza ampliamente en econometría, bioestadística y ciencias sociales, ofreciendo una interpretación estadística profunda de los resultados.

Funcionalidades clave de la librería Statsmodels

Análisis de regresión

Statsmodels ofrece amplias capacidades para el análisis de regresión, incluyendo mínimos cuadrados ordinarios (OLS), modelos lineales generalizados (GLM), regresión robusta y modelos de datos de panel. La librería admite métodos de estimación tanto paramétricos como no paramétricos.

Análisis de series temporales

El módulo de series temporales incluye modelos ARIMA, SARIMA, suavizado exponencial, autorregresión vectorial (VAR) y muchos más. Dispone de funciones para probar la estacionariedad, descomponer series y realizar pronósticos.

Pruebas de hipótesis estadísticas

La librería contiene un amplio conjunto de pruebas estadísticas: pruebas t, pruebas F, pruebas de normalidad, pruebas de igualdad de varianzas, pruebas de autocorrelación y muchas otras.

Análisis de varianza (ANOVA)

Se admiten modelos ANOVA de uno y múltiples factores, ANCOVA, medidas repetidas y efectos mixtos.

Métodos no paramétricos

Incluye métodos de estimación de densidad por kernel, regresión no paramétrica y pruebas basadas en rangos.

Instalación y configuración de Statsmodels

Instalación de la librería

La instalación se realiza con el comando estándar:

pip install statsmodels

Para obtener funcionalidades adicionales, puedes instalar con todas las dependencias:

pip install statsmodels[complete]

Importación de los componentes necesarios

import statsmodels.api as sm
import statsmodels.formula.api as smf
import statsmodels.tsa.api as tsa
import statsmodels.stats.api as sms

Estructura de la librería y módulos principales

Interfaces API principales

statsmodels.api — interfaz clásica con especificación directa de matrices de datos

statsmodels.formula.api — interfaz basada en fórmulas, similar a R

statsmodels.tsa — módulo para análisis de series temporales

statsmodels.stats — pruebas estadísticas y diagnóstico

statsmodels.graphics — visualización de resultados

Trabajo con datos y preparación

Statsmodels funciona de manera óptima con pandas.DataFrame:

import pandas as pd
import numpy as np

# Carga de datos
data = pd.read_csv("dataset.csv")

# Verificación de valores faltantes
print(data.isnull().sum())

# Estadísticas básicas
print(data.describe())

Regresión lineal (OLS)

Interfaz clásica

import statsmodels.api as sm

# Preparación de datos
X = data[["x1", "x2", "x3"]]
X = sm.add_constant(X)  # agregar constante
y = data["y"]

# Construcción del modelo
model = sm.OLS(y, X).fit()
print(model.summary())

# Extracción de coeficientes
print("Coeficientes:", model.params)
print("Valores p:", model.pvalues)
print("R-cuadrado:", model.rsquared)

Interfaz basada en fórmulas

import statsmodels.formula.api as smf

# Uso de fórmulas
model = smf.ols("y ~ x1 + x2 + x3", data=data).fit()
print(model.summary())

# Interacción de variables
model_interaction = smf.ols("y ~ x1 * x2 + x3", data=data).fit()

# Variables categóricas
model_cat = smf.ols("y ~ C(category) + x1", data=data).fit()

Modelos lineal

Recommendations