Skip to content

ScaledAsinhTransformer

ScaledAsinhTransformer

class ScaledAsinhTransformer(mad_normalization_factor=1.4826)[source]

Hyperbolic sine transformation and its inverse [1].

Known as variance stabilizing transformation, Combined with an sktime.forecasting.compose.TransformedTargetForecaster, can be useful in time series that exhibit spikes [1], [2]

Parameters:
mad_normalization_factorfloat, default = 1.4826

The normalization factor used to adjust the median absolute deviation (MAD) for asymptotically normal consistency to the standard deviation. The default value based on [1], [2] is 1.4826.

Attributes:
shift_parameter_asinh_float

shift parameter, denoted as “a” in [1], the median of sample data. It is fitted, based on the data provided in “fit”.

scale_parameter_asinh_float

scale parameter, denoted as “b” in [1], the median absolute deviation (MAD) around the sample median adjusted by a factor for asymptotically normal consistency to the standard deviation (Based on [1], [2] b = median_abs_deviation(sample data) \(\times\) mad_normalization_factor). It is fitted, based on the data provided in “fit”.

See also

sktime.transformations.boxcox.LogTransformer

Transformer input data using natural log. Can help normalize data and compress variance of the series.

sktime.transformations.boxcox.BoxCoxTransformer

Applies Box-Cox power transformation. Can help normalize data and compress variance of the series.

sktime.transformations.exponent.ExponentTransformer

Transform input data by raising it to an exponent. Can help compress variance of series if a fractional exponent is supplied.

sktime.transformations.exponent.SqrtTransformer

Transform input data by taking its square root. Can help compress variance of input series.

Notes

The Hyperbolic Sine transformation is applied as:
\(asinh(\frac{x- a}{b})\)
The Hyperbolic Sine inverse transformation is applied as:
\(b . sinh(x) + a\)
where “a” is the shift parameter and “b” is the scale parameter [1].
a = median(sample data)
b = median_abs_deviation(sample data) \(\times\) mad_normalization_factor

References

[1] (1,2,3,4,5,6,7)

Ziel F, Weron R. Day-ahead electricity price forecasting with high-dimensional structures: Univariate vs. multivariate modeling frameworks. Energy Economics. 2018 Feb 1;70:396-420.

[2] (1,2,3)

Uniejewski, B., Weron, R., Ziel, F., 2017. Variance stabilizing transformations for electricity spot price forecasting. IEEE Transactions on Power Systems, DOI: 10.1109/TPWRS.2017.2734563

Examples

>>> from sktime.transformations.scaledasinh import ScaledAsinhTransformer
>>> from sktime.datasets import load_airline
>>> y = load_airline()
>>> transformer = ScaledAsinhTransformer()
>>> y_hat = 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([parameter_set])

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.