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
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, ortimedeltatime 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
lagsparameter elements infreqcorrespond to elements in lags if i-th element offreqis not None, i-th element oflagsmust be intthis is called the “corresponding lags element” below
“frequency descriptor” can be one of the following: time-like:
DateOffset,tseries.offsets, ortimedeltamultiplied to corresponding
lagselement when shiftingstr - 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
lagscontains only a single element if True, ensures that column names oftransformoutput are same as in input, i.e., notlag_x__varnamebutvarname. Overridesflatten_transform_index.- remember_databool, optional (default=True)
if True, memorizes data seen in
fit,update, uses it intransformif False, only uses data seen intransformto produce lags setting to False ensures faster runtime if only used viafit_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)