Skip to content

Differencer

Differencer

class Differencer(lags=1, na_handling='fill_zero', memory='all')[source]

Apply iterative differences to a timeseries.

The transformation works for univariate and multivariate timeseries. However, the multivariate case applies the same differencing to every series.

Difference transformations are applied at the specified lags in the order provided.

For example, given a timeseries with monthly periodicity, using lags=[1, 12] corresponds to applying a standard first difference to handle trend, and followed by a seasonal difference (at lag 12) to attempt to account for seasonal dependence.

To provide a higher-order difference at the same lag list the lag multiple times. For example, lags=[1, 1] takes iterative first differences like may be needed for a series that is integrated of order 2.

Parameters:
lagsint or array-like, default = 1

The lags used to difference the data. If a single int value is

na_handlingstr, optional, default = “fill_zero”

How to handle the NaNs that appear at the start of the series from differencing Example: there are only 3 differences in a series of length 4,

differencing [a, b, c, d] gives [?, b-a, c-b, d-c] so we need to determine what happens with the “?” (= unknown value)

“drop_na” - unknown value(s) are dropped, the series is shortened “keep_na” - unknown value(s) is/are replaced by NaN “fill_zero” - unknown value(s) is/are replaced by zero

memorystr, optional, default = “all”

how much of previously seen X to remember, for exact reconstruction of inverse “all” : estimator remembers all X, inverse is correct for all indices seen “latest” : estimator only remembers latest X necessary for future reconstruction

inverses at any time stamps after fit are correct, but not past time stamps

“none” : estimator does not remember any X, inverse is direct cumsum

Attributes:
is_fitted

Whether fit has been called.

Examples

>>> from sktime.transformations.difference import Differencer
>>> from sktime.datasets import load_airline
>>> y = load_airline()
>>> transformer = Differencer(lags=[1, 12])
>>> y_transform = transformer.fit_transform(y)

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(X[, y])

Fit transformer to X, optionally to y.

fit_transform(X[, y])

Fit to data, then transform it.

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_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()

Return testing parameter settings for the estimator.

inverse_transform(X[, y])

Inverse transform X and return an inverse transformed version.

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.

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.

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.

transform(X[, y])

Transform X and return a transformed version.

update(X[, y, update_params])

Update transformer with X, optionally y.