Estimate trend and seasonal effects in a timeseries
Robustly estimate and remove trend and periodicity in a timeseries.
Seasonal can recover sharp trend and period estimates from noisy
timeseries data with only a few periods. It is intended for
estimating season, trend, and level when initializing structural
timeseries models like Holt-Winters. Input samples are
assumed evenly-spaced from a continuous real-valued signal with noise but
The seasonal estimate will be a list of period-over-period averages at each seasonal offset. You may specify a period length, or have it estimated from the data. The latter is an interesting capability of this package.
Trend removal in this package is in service of isolating and estimating the periodic (non-trend) variation. A lowpass smoothing of the data is removed from the original series, preserving original seasonal variation. Detrending is accomplishd by a coarse fitted spline, mean or median filters, or a fitted line.
See https://github.com/welch/seasonal/README.md for details on installation, API, theory, and examples.
- package: numpy, scipy
- extras: pandas, matplotlib