Detrender
Remove a trend from a series.
This transformer uses any forecaster and returns the in-sample residuals of the forecaster’s predicted values.
The Detrender works as follows: in “fit”, the forecaster is fit to the input data, i.e., forecaster.fit(y=X). in “transform”, returns forecast residuals of forecasts at the data index. That is, transform(X) returns X - forecaster.predict(fh=X.index) (additive) or X / forecaster.predict(fh=X.index) (multiplicative detrending). Depending on time indices, this can generate in-sample or out-of-sample residuals.
- For example, to remove the linear trend of a time series:
forecaster = PolynomialTrendForecaster(degree=1) transformer = Detrender(forecaster=forecaster) yt = transformer.fit_transform(y_train)
The detrender can also be used in a pipeline for residual boosting, by first detrending and then fitting another forecaster on residuals.
Schnellstart
from sktime.transformations.detrend import Detrender
estimator = Detrender(forecaster=None, model='additive')Parameter(2)
- forecastersktime forecaster, follows BaseForecaster, default = None.
- The forecasting model to remove the trend with
(e.g. PolynomialTrendForecaster).
- model{“additive”, “multiplicative”}, default=”additive”
If
model="additive"theforecaster.transformsubtracts the trend, i.e.,transform(X)returnsX - forecaster.predict(fh=X.index)Ifmodel="multiplicative"theforecaster.transformdivides by the trend, i.e.,transform(X)returnsX / forecaster.predict(fh=X.index)
Beispiele
>>> from sktime.transformations.detrend import Detrender
>>> from sktime.forecasting.trend import PolynomialTrendForecaster
>>> from sktime.datasets import load_airline
>>> y = load_airline ()
>>> transformer = Detrender (forecaster = PolynomialTrendForecaster (degree = 1))
>>> y_hat = transformer. fit_transform (y)