Zurück zu den Modellen
Transformer

Lag

Lagging transformer. Lags time series by one or multiple lags.

Transforms a time series into a lagged version of itself. Multiple lags can be provided, as a list. Estimator-like wrapper of pandas.shift and integer index lagging.

Lags can be provided as a simple offset, lags, or pair of (lag count, frequency), with lag count an int (lags arg) and frequency a pandas frequency descriptor.

When multiple lags are provided, multiple column concatenated copies of the lagged time series will be created. Names of columns are lagname__variablename, where lagname describes the lag/freq.

If data was provided in _fit or _update, Lag transformer memorizes those indices and uses them for computing lagged values. To use only data seen in transform, use the FitInTransform compositor.

Schnellstart

python
from sktime.transformations.lag import Lag

estimator = Lag(lags=0, freq=None, index_out='extend', flatten_transform_index=True, keep_column_names=False, remember_data=True)

Parameter(6)

lagslag offset, or list of lag offsets, optional, default=0 (identity transform)

a “lag offset” can be one of the following: int - number of periods to shift/lag time-like: DateOffset, tseries.offsets, or timedelta

time delta offset to shift/lag requires time index of transformed data to be time-like (not int)

str - time rule from pandas.tseries module, e.g., “EOM”

freqfrequency descriptor of list of frequency descriptors, optional, default=None

if passed, must be scalar, or list of equal length to lags parameter elements in freq correspond to elements in lags if i-th element of freq is not None, i-th element of lags must be int

this is called the “corresponding lags element” below

“frequency descriptor” can be one of the following: time-like: DateOffset, tseries.offsets, or timedelta

multiplied to corresponding lags element when shifting

str - offset from pd.tseries module, e.g., “D”, “M”, or time rule, e.g., “EOM”

index_outstr, optional, one of “shift”, “original”, “extend”, default=”extend”

determines set of output indices in lagged time series “shift” - only shifted indices are retained.

Will not create NA for single lag, but can create NA for multiple lags.

“original” - only original indices are retained. Will usually create NA. “extend” - both original indices and shifted indices are retained.

Will usually create NA, possibly many, if shifted/original do not intersect.

flatten_transform_indexbool, optional (default=True)
if True, columns of return DataFrame are flat, by “lagname__variablename” if False, columns are MultiIndex (lagname, variablename) has no effect if return mtype is one without column names
keep_column_namesbool, optional (default=False)

has an effect only if lags contains only a single element if True, ensures that column names of transform output are same as in input, i.e., not lag_x__varname but varname. Overrides flatten_transform_index.

remember_databool, optional (default=True)

if True, memorizes data seen in fit, update, uses it in transform if False, only uses data seen in transform to produce lags setting to False ensures faster runtime if only used via fit_transform

Beispiele

>>> from sktime.datasets import load_airline
>>> from sktime.transformations.lag import Lag
>>> X = load_airline () Single lag will yield a time series with the same variables:
>>> t = Lag (2)
>>> Xt = t. fit_transform (X) Multiple lags can be provided, this will result in multiple columns:
>>> t = Lag ([2, 4, - 1 ])
>>> Xt = t. fit_transform (X) The default setting of index_out will extend indices either side. To ensure that the index remains the same after transform, use index_out=”original”
>>> t = Lag ([2, 4, - 1 ], index_out = "original")
>>> Xt = t. fit_transform (X) The lag transformer may (and usually will) create NAs. (except when index_out=”shift” and there is only a single lag, or in trivial cases). This may need to be handled, e.g., if a subsequent pipeline step does not accept NA. To deal with the NAs, pipeline with the Imputer:
>>> from sktime.datasets import load_airline
>>> from sktime.transformations.impute import Imputer
>>> from sktime.transformations.lag import Lag
>>> X = load_airline ()
>>> 
>>> t = Lag ([2, 4, - 1 ]) * Imputer ("nearest")
>>> Xt = t. fit_transform (X)