Sto cercando di aggiustare stagionalmente i dati mensili, usando Python. Come puoi vedere da queste serie: www.emconfidential.com, c'è un'alta componente stagionale nei dati. Vorrei regolare per questo in modo da poter valutare meglio se la tendenza della serie è in aumento o in calo. Qualcuno sa come farlo facilmente usando scipy o altre librerie Python?Adattamento stagionale in Python e Scipy
risposta
Non esiste una libreria Python magica che eseguirà regolazioni stagionali per te. Le applicazioni che fanno questo genere di cose tendono ad essere rather large.
Avrai bisogno di risolvere i calcoli yourself e quindi utilizzare scipy per calcolare il resto per te.
Non sono sicuro sull'aspetto della programmazione, ma prenderei seriamente in considerazione le medie mobili per risolvere questo problema.
che funziona per una media mobile 12 periodo, l'unico problema è che quello che se voglio estrapolare dal ultimi 3 o 6 mesi di dati, per iniziare a farsi un'idea della tendenza in via di sviluppo? Quindi ho bisogno di un adeguato aggiustamento stagionale. –
Statsmodels può fare questo. Hanno una scomposizione stagionale di base e anche un involucro per la regolazione del Census X13. Puoi anche usare rpy2 per accedere ad alcune delle eccellenti librerie di R di SA. Ecco statsmodels decomposizione stagionale:
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
V'è ora un pacchetto che sembra essere esattamente quello che stai cercando! Controlla il pacchetto seasonal
, ecco lo link. L'ho trovato personalmente molto utile, chiedendomi cosa pensano gli altri.
Vorrei suggerire Prophet sviluppato dal team di scienza dei dati su Facebook. Ha API Python + R e viene utilizzato per la previsione delle serie temporali, sebbene sia possibile utilizzarlo solo per scomporre la serie nei suoi componenti (tendenza vs stagionalità). È possibile regolare facilmente e visualizzare la decomposizione:
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. Test di bontà di adattamento in SciPy
- 2. Differenza tra algoritmi di adattamento in scipy
- 3. Adattamento di una distribuzione di Weibull utilizzando Scipy
- 4. Dati di caricamento Python e adattamento multi gaussiano
- 5. Raccordo dati usando UnivariateSpline in python scipy
- 6. Adattamento dei dati al sistema di ODE utilizzando Python tramite Scipy & Numpy
- 7. Decomposizione stagionale delle serie cronologiche da Loess con Python
- 8. Quantificazione della qualità della curva adattata utilizzando Python SciPy
- 9. Mutating/in-place funzione di invocazione o adattamento in Python
- 10. ANCOVA in Python con statistiche Scipy/Numpy
- 11. multivariata normale CDF in Python utilizzando SciPy
- 12. SciPy/Python installare su Ubuntu
- 13. Python SciPy convolve vs fftconvolve
- 14. Convex Hull e SciPy
- 15. Configurazione consigliata per Scitools, NumPy e SciPy
- 16. Adattamento delle colonne in QTableView
- 17. Scipy e CX_freeze - Errore durante l'importazione di scipy: non è possibile importare scipy mentre si è in una directory sorgente scipy
- 18. Qualcosa come SciPy in Ruby?
- 19. "parte AR stagionale non stazionaria da CSS" errore in R
- 20. Dividi stagionale di dati mensili, incluso NA in r
- 21. ANOVA in python usando pandas dataframe con statsmodels o scipy?
- 22. Adattamento multidimensionale in Numpy, Pandas e Sklearn (ValueError)
- 23. Lettura di file MatLab in python w/scipy
- 24. Scrittura del file wav in Python con wavfile.write da SciPy
- 25. Python/Scipy - implementazione del sigma di optimize.curve_fit in optimize.leastsq
- 26. clustering gerarchico sulle correlazioni in Python scipy/numpy?
- 27. Confusione tra numpy, scipy, matplotlib e pylab
- 28. Cluster gerarchico delle serie temporali in Python scipy/numpy/panda?
- 29. Colori cluster personalizzati del dendrogramma SciPy in Python (link_color_func?)
- 30. Scipy Derivative
Grazie, penso che tu abbia ragione che lo programmerò da solo. Il tuo PDF è una buona fonte. Tuttavia non è del tutto vero che non ci siano librerie python che facciano questo: http://hydroclimpy.sourceforge.net/generated/scikits.hydroclimpy.core.ts_addons.deseasonalize.html#scikits.hydroclimpy.core.ts_addons.deseasonalize Problema è sopra non è l'algoritmo che voglio. Sto cercando un'implementazione Arima X12. –
Sfortunatamente, il link pdf sembra essere rotto, o il file è stato rimosso. Come ottenerne una copia comunque? – FaCoffee