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()