Si alguna vez has intentado modelar series temporales, probablemente habrás oído hablar de los modelos ARMA o ARIMA. En Python la biblioteca más utilizada para esto es statsmodels. En este artículo presentaremos rápidamente los usos de statsmodels y algunos ejemplos de uso.
¿Qué hacer con statsmodels?
Statsmodels es una biblioteca de análisis y modelado de datos estadísticos. Ofrece una serie de funcionalidades que no se encuentran en bibliotecas más tradicionales como sklearn.
Regresión lineal
En primer lugar, statsmodels completa en gran medida la regresión lineal clásica proponiendo nuevos estimadores de mínimos cuadrados. Normalmente, se utilizan los mínimos cuadrados ordinarios (OLS) para estimar la regresión lineal. Sin embargo, en el caso de que algunos residuos estén correlacionados, la regresión lineal deja de ser eficaz. Los mínimos cuadrados generalizados (GLS) pueden entonces ayudar a resolver este problema.
Statsmodels es una biblioteca de análisis y modelado de datos estadísticos. Ofrece una serie de funcionalidades que no se encuentran en bibliotecas más tradicionales como sklearn.
Regresión lineal
En primer lugar, statsmodels completa en gran medida la regresión lineal clásica proponiendo nuevos estimadores de mínimos cuadrados. Normalmente, se utilizan los mínimos cuadrados ordinarios (OLS) para estimar la regresión lineal. Sin embargo, en el caso de que algunos residuos estén correlacionados, la regresión lineal deja de ser eficaz. Los mínimos cuadrados generalizados (GLS) pueden entonces ayudar a resolver este problema.
Paralelamente a este método, statsmodels presenta otros dos estimadores de mínimos cuadrados ordinarios más complejos : mínimos cuadrados recursivos (RLS) y mínimos cuadrados móviles (MLS).
Además, la regresión lineal clásica impone una serie de supuestos que deben comprobarse durante el proceso. Statsmodels presenta diferentes pruebas estadísticas que permiten comprobar :
- La no multicolinealidad de las variables
- La homocedasticidad (prueba de Breusch-Pagan)
- La normalidad de los residuos (prueba de Jarque-Bera)
Veamos un ejemplo de aplicación en Python :
Modelos lineales generalizados
Paralelamente, la biblioteca statsmodels permite utilizar modelos lineales generalizados (GLM), que son una generalización de la regresión lineal clásica.
De hecho, la regresión lineal supone que la variable en cuestión sigue una distribución normal (supuesto impuesto por la normalidad de los residuos). En el caso del GLM, se puede utilizar cualquier distribución de la familia exponencial.
Además, el GLM vincula la variable en cuestión con el modelo a través de una función de enlace, lo que permite que la regresión lineal clásica sea aún más flexible.
Un caso concreto de modelo lineal generalizado es la regresión logística. La variable en cuestión sigue una distribución binomial y se utiliza una función de enlace logit.
Series temporales :
Statsmodels presenta, concretamente, muchas herramientas muy útiles y completas a la hora de estudiar las series temporales.
En primer lugar, la descomposición tendencia-estacionalidad-residuo. Si no estás familiarizado con estos componentes clásicos de las series temporales, te invitamos a ver nuestro artículo sobre series temporales.
Esta funcionalidad permite ver de un vistazo la influencia de los diferentes componentes en nuestro modelo, pero también visualizar los residuos para tener una primera idea sobre su estacionalidad.
Statsmodels también implementa dos pruebas estadísticas para comprobar la estacionalidad de las series temporales : la prueba Augmented Dickey-Fuller (ADF) y la prueba KPSS (Kwiatkowski-Phillips-Schmidt-Shin).
Por último, pero no por ello menos importante, statsmodels ofrece toda una gama de modelos clásicos para modelar series temporales :
- Procesos autorregresivos
- Medias móviles
- ARMA y ARIMA
- SARIMA, SARIMAX, VARIMAX
SARIMAX es sencillamente un proceso SARIMA que utiliza variables exógenas en paralelo para predecir la serie temporal. Mientras que el proceso VARIMAX es un ARIMAX vectorizado que, por tanto, permite predecir múltiples valores al mismo tiempo.
Además de las características presentadas en este artículo, la biblioteca statsmodels ofrece muchas posibilidades adicionales y sigue creciendo. Para más información, se proporciona su documentación que incluye muchos ejemplos detallados.
Conclusión
Statsmodels es una herramienta esencial para el estadista o el Data Scientist, sobre todo cuando para el estudio de las series temporales. Su sintaxis, fácil de entender y reproducible, permite utilizar, modelar y explorar las series estadísticas sin dificultad.
Sin embargo, las herramientas que debe dominar un Data Scientist abarcan temas mucho más amplios (Data Visualization, Machine Learning, Deep Learning, etc.) que te invitamos a descubrir en nuestro curso de Data Scientist.