Estoy buscando ajustar estacionalmente los datos mensuales, usando Python. Como puede ver en estas series: www.emconfidential.com, hay un alto componente estacional en los datos. Me gustaría ajustar esto para poder evaluar mejor si la tendencia de la serie está subiendo o bajando. ¿Alguien sabe cómo hacer esto fácilmente usando Scipy u otra biblioteca de Python?Ajuste estacional en Python y Scipy
Respuesta
No hay una biblioteca mágica de Python que le haga ajustes estacionales. Las aplicaciones que hacen este tipo de cosas tienden a ser rather large.
Tendrá que calcular las matemáticas yourself y luego usar scipy para calcular el resto para usted.
No estoy seguro del aspecto de programación de esto, pero consideraría seriamente mover promedios para resolver esto.
que trabaja para una media móvil de 12 periodo, el único problema es que lo que si quiero extrapolar a partir de la últimos 3 o 6 meses de datos, para comenzar a tener una idea de la tendencia en desarrollo? Entonces necesito un ajuste estacional apropiado. –
Statsmodels puede hacer esto. Tienen una descomposición estacional básica y también una envoltura para el ajuste del Censo X13. También podría usar rpy2 para acceder a algunas de las excelentes bibliotecas SA de R. Aquí es statsmodels descomposición estacional:
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
pd.options.display.mpl_style = 'default'
%matplotlib inline
dta = sm.datasets.co2.load_pandas().data.resample("M").fillna(method="ffill")
res = sm.tsa.seasonal_decompose(dta)
fig = res.plot()
fig.set_size_inches(10, 5)
plt.tight_layout()
http://statsmodels.sourceforge.net/0.6.0/release/version0.6.html
Ahora hay un paquete que parece ser exactamente lo que usted está buscando! Consulte el paquete seasonal
, aquí está el link. Personalmente, me pareció muy útil, preguntándome qué piensan los demás.
Sugeriría Prophet desarrollado por el equipo de ciencia de datos en Facebook. Tiene Python + R API y se usa para la predicción de series de tiempo, aunque puedes usarlo solo para descomponer tus series en sus componentes (tendencia frente a estacionalidad). Usted puede ajustar fácilmente y visualizar la descomposición:
from fbprophet import Prophet
import numpy as np
import pandas as pd
# Create series
np.random.seed(0)
x = np.arange(0, 10, .285)
y_periodic = np.sin(x*np.pi)
y_random = np.random.normal(size=len(x))
y_trend = x/10.
df = pd.DataFrame({'ds': pd.date_range('01-01-2017', periods=len(x)),
'y': y_periodic})
df.head() # has to be a DataFrame with columns "ds" and "y"
df.set_index('ds').plot(style='-*')
# Estimate the model
m = Prophet()
m.fit(df);
forecast = m.predict(df)
m.plot_components(forecast);
- 1. Pruebas de bondad de ajuste en SciPy
- 2. Ajuste de una distribución gamma con (python) Scipy
- 3. Ajuste de una distribución pareto con (python) Scipy
- 4. Ajuste de curva de 6 ° grado con numpy/scipy
- 5. Distribuciones de montaje, bondad de ajuste, valor de p. ¿Es posible hacer esto con Scipy (Python)?
- 6. Ajuste de datos al sistema de ODE utilizando Python a través de Scipy & Numpy
- 7. Interpolación de Python/Scipy (map_coordinates)
- 8. agrupando datos en python con scipy/numpy
- 9. SciPy en lugar de GNU Octave
- 10. Configuración recomendada para Scitools, NumPy y SciPy
- 11. Desbordamiento en exp en scipy/numpy en Python?
- 12. Python/Numpy/Scipy - Conversión de cadena a función matemática
- 13. ajuste de curva con python
- 14. agrupación jerárquica en correlaciones en Python scipy/numpy?
- 15. ¿Algo como SciPy en Ruby?
- 16. Creando una matriz en numpy/scipy por iteración en Python?
- 17. Ignorando -Inf valores en matrices utilizando numpy/scipy en Python
- 18. ¿Cuánto de NumPy y SciPy están en C?
- 19. Ajuste de regresión ortogonal en el método scipy de mínimos cuadrados
- 20. Scipy Derivative
- 21. Prueba de Kolmogorov-Smirnov de dos muestras en Python Scipy
- 22. enfoque vectorizada a binning con numpy/scipy en Python
- 23. ANCOVA en Python con estadísticas de Scipy/Numpy
- 24. error "no estacionario parte AR estacional de CSS" en R
- 25. integrales 2D en SciPy
- 26. Ajuste de superficie polinomial 3D de Python, dependiente del pedido
- 27. scipy, lognormal distribution - parameters
- 28. Izquierda inversa en numpy o scipy?
- 29. advertencias de Búsquedas Python/errores a un número de línea en numpy y SciPy
- 30. ¿Cuáles son las diferencias entre Pandas y NumPy + SciPy en Python?
Gracias, creo que tienes razón de que solo lo programaré yo mismo. Tu PDF es una buena fuente. Sin embargo, no es del todo cierto que no haya bibliotecas de Python que hagan esto: http://hydroclimpy.sourceforge.net/generated/scikits.hydroclimpy.core.ts_addons.deseasonalize.html#scikits.hydroclimpy.core.ts_addons.deseasonalize Problema está arriba no es el algoritmo que quiero. Estoy buscando una implementación X12 Arima. –
Desafortunadamente, el enlace de PDF parece estar roto, o el archivo ha sido eliminado. ¿Cómo obtener una copia de todos modos? – FaCoffee