ThetaForecaster
ThetaForecaster
- class ThetaForecaster(initial_level=None, deseasonalize=True, sp=1, deseasonalize_model='multiplicative')[source]
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.
- Parameters:
- 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.
- Attributes:
- initial_level_float
The estimated alpha value of the SES fit.
- drift_float
The estimated drift of the fitted model.
- se_float
The standard error of the predictions. Used to calculate prediction intervals.
See also
StatsForecastAutoTheta
References
[1]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
[2]`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
Examples
>>> 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])
Methods
check_is_fitted([method_name])Check if the estimator has been fitted.
clone()Obtain a clone of the object with same hyper-parameters and config.
clone_tags(estimator[, tag_names])Clone tags from another object as dynamic override.
create_test_instance([parameter_set])Construct an instance of the class, using first test parameter set.
create_test_instances_and_names([parameter_set])Create list of all test instances and a list of names for them.
fit(y[, X, fh])Fit forecaster to training data.
fit_predict(y[, X, fh, X_pred])Fit and forecast time series at future horizon.
get_class_tag(tag_name[, tag_value_default])Get class tag value from class, with tag level inheritance from parents.
get_class_tags()Get class tags from class, with tag level inheritance from parent classes.
get_config()Get config flags for self.
get_fitted_params([deep])Get fitted parameters.
get_param_defaults()Get object's parameter defaults.
get_param_names([sort])Get object's parameter names.
get_params([deep])Get a dict of parameters values for this object.
get_pretrained_params([deep])Get pretrained parameters of this estimator.
get_tag(tag_name[, tag_value_default, ...])Get tag value from instance, with tag level inheritance and overrides.
get_tags()Get tags from instance, with tag level inheritance and overrides.
get_test_params([parameter_set])Return testing parameter settings for the estimator.
is_composite()Check if the object is composed of other BaseObjects.
load_from_path(serial)Load object from file location.
load_from_serial(serial)Load object from serialized memory container.
predict([fh, X])Forecast time series at future horizon.
predict_interval([fh, X, coverage])Compute/return prediction interval forecasts.
predict_proba([fh, X, marginal])Compute/return fully probabilistic forecasts.
predict_quantiles([fh, X, alpha])Compute/return quantile forecasts.
predict_residuals([y, X])Return residuals of time series forecasts.
predict_var([fh, X, cov])Compute/return variance forecasts.
pretrain(y[, X, fh])Pre-train forecaster on panel (global) data.
reset()Reset the object to a clean post-init state.
save([path, serialization_format])Save serialized self to bytes-like object or to (.zip) file.
score(y[, X, fh])Scores forecast against ground truth, using MAPE (non-symmetric).
set_config(**config_dict)Set config flags to given values.
set_params(**params)Set the parameters of this object.
set_random_state([random_state, deep, ...])Set random_state pseudo-random seed parameters for self.
set_tags(**tag_dict)Set instance level tag overrides to given values.
update(y[, X, update_params])Update cutoff value and, optionally, fitted parameters.
update_predict(y[, cv, X, update_params, ...])Make predictions and update model iteratively over the test set.
update_predict_single([y, fh, X, update_params])Update model with new data and make forecasts.

