ThetaForecaster
Theta method for forecasting.
The theta method as defined in [1] is equivalent to simple exponential smoothing (SES) with drift (as demonstrated in [2]).
The series is tested for seasonality using the test outlined in A&N. If deemed seasonal, the series is seasonally adjusted using a classical multiplicative decomposition before applying the theta method. The resulting forecasts are then reseasonalised.
In cases where SES results in a constant forecast, the theta forecaster will revert to predicting the SES constant plus a linear trend derived from the training data.
Prediction intervals are computed using the underlying state space model.
Schnellstart
from sktime.forecasting.theta import ThetaForecaster
estimator = ThetaForecaster(initial_level=None, deseasonalize=True, sp=1, deseasonalize_model='multiplicative')Parameter(4)
- initial_levelfloat, optional
- The alpha value of the simple exponential smoothing, if the value is set then this will be used, otherwise it will be estimated from the data.
- deseasonalizebool, optional (default=True), or sktime BaseTransformer instance
Whether and how to deseasonalize the data before fitting the theta model.
If True, data is seasonally adjusted using
sktimeDeseasonalizer().If BaseTransformer instance, this is used to seasonally adjust the data, via
fit_transformin fit, andinverse_transformin predict.If False, no seasonal adjustment is done.
- spint, optional (default=1)
- The number of observations that constitute a seasonal period for a multiplicative deseasonaliser, which is used if seasonality is detected in the training data. Ignored if a deseasonaliser transformer is provided. Default is 1 (no seasonality).
- deseasonalize_modelstr, optional (default=”multiplicative”)
The type of seasonal decomposition to use in the deseasonaliser. Can be “additive” or “multiplicative”. Passed on to
Deseasonalizerifdeseasonalize=True. Only used ifdeseasonalize=True.
Beispiele
>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.theta import ThetaForecaster
>>> y = load_airline ()
>>> forecaster = ThetaForecaster (sp = 12)
>>> forecaster. fit (y) ThetaForecaster(
... )
>>> y_pred = forecaster. predict (fh = [1, 2, 3 ])Referenzen
Assimakopoulos, V. and Nikolopoulos, K. The theta model: a decomposition approach to forecasting. International Journal of Forecasting 16, 521-530, 2000. https://www.sciencedirect.com/science/article/pii/S0169207000000662
`Hyndman, Rob J., and Billah, Baki. Unmasking the Theta method. International J. Forecasting, 19, 287-290, 2003. https://www.sciencedirect.com/science/article/pii/S0169207001001431