SeasonalityACFqstat#

class SeasonalityACFqstat(candidate_sp=None, p_threshold=0.05, p_adjust='fdr_by', adjusted=False, nlags=None, fft=True, missing='none')[source]#

Find candidate seasonality parameter using autocorrelation function LB q-stat.

Uses statsmodels.tsa.stattools.act for computing the autocorrelation function, and uses its testing functionality to determine candidate seasonality parameters. (“seasonality parameter” are integer lags, and abbreviated by sp, below)

Obtains Ljung-Box q-statistic to test for candidate sp at candidate_sp.

Then applies statsmodels.stats.multitest.multipletests to correct multiple tests. Fitted attributes returned are significant sp and the most significant sp. These can be used in conditional or unconditional deseasonalization.

Note: this should be applied to stationary series.

Quick stationarity transformation can be achieved by differencing. See also: Differencer

Parameters
candidate_spNone, int or list of int, optional, default = None

candidate sp to test, and to restrict tests to; ints must be 2 or larger if None, will test all integer lags between 2 and nlags (inclusive)

p_thresholdfloat, optional, default=0.05

significance threshold to apply in tesing for seasonality

p_adjuststr, optional, default=”fdr_by” (Benjamini/Yekutieli)

multiple testing correction applied to p-values of candidate sp in acf test multiple testing correction is applied to Ljung-Box tests on candidate_sp values can be “none” or strings accepted by statsmodels multipletests “none” = no multiple testim correction is applied, raw p-values are used “fdr_by” = Benjamini-Yekutieli FDR control procedure for other possible strings, see statsmodels.stats.multitest.multipletests

adjustedbool, optional, default=False

If True, then denominators for autocovariance are n-k, otherwise n.

nlagsint, optional, default=None

Number of lags to compute autocorrelations for and select from. At default None, uses min(10 * np.log10(nobs), nobs - 1). Will be ignored if candidate_sp is provided.

fftbool, optional, default=True

If True, computes the ACF via FFT.

missingstr, [“none”, “raise”, “conservative”, “drop”], optional, default=”none”

Specifies how NaNs are to be treated. “none” performs no checks. “raise” raises an exception if NaN values are found. “drop” removes the missing observations and treats non-missing as contiguous. “conservative” computes the autocovariance using nan-ops so that nans are

removed when computing the mean and cross-products that are used to estimate the autocovariance. When using “conservative”, n is set to the number of non-missing observations.

Attributes
sp_int, seasonality period at lowest p-level, if any sub-threshold, else 1

if candidate_sp is passed, will be in candidate_sp or 1

sp_significant_list of int, seasonality periods with sub-threshold p-levels

ordered increasingly by p-level. Empty list, not [1], if none are sub-threshold

Examples

>>> from sktime.datasets import load_airline
>>> from sktime.param_est.seasonality import SeasonalityACFqstat
>>> X = load_airline().diff()[1:]
>>> sp_est = SeasonalityACFqstat(candidate_sp=[3, 7, 12])  
>>> sp_est.fit(X)  
SeasonalityACFqstat(...)
>>> sp_est.get_fitted_params()["sp_significant"]  
array([12,  7,  3])

Methods

check_is_fitted()

Check if the estimator has been fitted.

clone()

Obtain a clone of the object with same hyper-parameters.

clone_tags(estimator[, tag_names])

clone/mirror tags from another estimator as dynamic override.

create_test_instance([parameter_set])

Construct Estimator instance if possible.

create_test_instances_and_names([parameter_set])

Create list of all test instances and a list of names for them.

fit(X)

Fit estimator and estimate parameters.

get_class_tag(tag_name[, tag_value_default])

Get tag value from estimator class (only class tags).

get_class_tags()

Get class tags from estimator class and all its parent classes.

get_config()

Get config flags for self.

get_fitted_params([deep])

Get fitted parameters.

get_param_defaults()

Get parameter defaults for the object.

get_param_names()

Get parameter names for the object.

get_params([deep])

Get parameters for this estimator.

get_tag(tag_name[, tag_value_default, …])

Get tag value from estimator class and dynamic tag overrides.

get_tags()

Get tags from estimator class and dynamic tag overrides.

get_test_params([parameter_set])

Return testing parameter settings for the estimator.

is_composite()

Check if the object is composite.

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])

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_tags(**tag_dict)

Set dynamic tags to given values.

update(X)

Update fitted parameters on more data.

classmethod get_test_params(parameter_set='default')[source]#

Return testing parameter settings for the estimator.

Parameters
parameter_setstr, default=”default”

Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set. There are currently no reserved values for transformers.

Returns
paramsdict or list of dict, default = {}

Parameters to create testing instances of the class Each dict are parameters to construct an “interesting” test instance, i.e., MyClass(**params) or MyClass(**params[i]) creates a valid test instance. create_test_instance uses the first (or only) dictionary in params

check_is_fitted()[source]#

Check if the estimator has been fitted.

Raises
NotFittedError

If the estimator has not been fitted yet.

clone()[source]#

Obtain a clone of the object with same hyper-parameters.

A clone is a different object without shared references, in post-init state. This function is equivalent to returning sklearn.clone of self. Equal in value to type(self)(**self.get_params(deep=False)).

Returns
instance of type(self), clone of self (see above)
clone_tags(estimator, tag_names=None)[source]#

clone/mirror tags from another estimator as dynamic override.

Parameters
estimatorestimator inheriting from :class:BaseEstimator
tag_namesstr or list of str, default = None

Names of tags to clone. If None then all tags in estimator are used as tag_names.

Returns
Self

Reference to self.

Notes

Changes object state by setting tag values in tag_set from estimator as dynamic tags in self.

classmethod create_test_instance(parameter_set='default')[source]#

Construct Estimator instance if possible.

Parameters
parameter_setstr, default=”default”

Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.

Returns
instanceinstance of the class with default parameters

Notes

get_test_params can return dict or list of dict. This function takes first or single dict that get_test_params returns, and constructs the object with that.

classmethod create_test_instances_and_names(parameter_set='default')[source]#

Create list of all test instances and a list of names for them.

Parameters
parameter_setstr, default=”default”

Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.

Returns
objslist of instances of cls

i-th instance is cls(**cls.get_test_params()[i])

nameslist of str, same length as objs

i-th element is name of i-th instance of obj in tests convention is {cls.__name__}-{i} if more than one instance otherwise {cls.__name__}

parameter_setstr, default=”default”

Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.

fit(X)[source]#

Fit estimator and estimate parameters.

State change:

Changes state to “fitted”.

Writes to self:

Sets self._is_fitted flag to True. Writes X to self._X. Sets fitted model attributes ending in “_”.

Parameters
Xtime series in sktime compatible data container format

Time series to which to fit the forecaster in the update.

y can be in one of the following formats, must be same scitype as in fit: Series scitype: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D) Panel scitype: pd.DataFrame with 2-level row MultiIndex,

3D np.ndarray, list of Series pd.DataFrame, or nested pd.DataFrame

Hierarchical scitype: pd.DataFrame with 3 or more level row MultiIndex For further details:

on usage, see forecasting tutorial examples/01_forecasting.ipynb on specification of formats, examples/AA_datatypes_and_datasets.ipynb

Returns
selfReference to self.
classmethod get_class_tag(tag_name, tag_value_default=None)[source]#

Get tag value from estimator class (only class tags).

Parameters
tag_namestr

Name of tag value.

tag_value_defaultany type

Default/fallback value if tag is not found.

Returns
tag_value

Value of tag_name tag in self. If not found, returns tag_value_default.

classmethod get_class_tags()[source]#

Get class tags from estimator class and all its parent classes.

Returns
collected_tagsdict

Dictionary of tag name : tag value pairs. Collected from _tags class attribute via nested inheritance. NOT overridden by dynamic tags set by set_tags or mirror_tags.

get_config()[source]#

Get config flags for self.

Returns
config_dictdict

Dictionary of config name : config value pairs. Collected from _config class attribute via nested inheritance and then any overrides and new tags from _onfig_dynamic object attribute.

get_fitted_params(deep=True)[source]#

Get fitted parameters.

State required:

Requires state to be “fitted”.

Parameters
deepbool, default=True

Whether to return fitted parameters of components.

  • If True, will return a dict of parameter name : value for this object, including fitted parameters of fittable components (= BaseEstimator-valued parameters).

  • If False, will return a dict of parameter name : value for this object, but not include fitted parameters of components.

Returns
fitted_paramsdict with str-valued keys

Dictionary of fitted parameters, paramname : paramvalue keys-value pairs include:

  • always: all fitted parameters of this object, as via get_param_names values are fitted parameter value for that key, of this object

  • if deep=True, also contains keys/value pairs of component parameters parameters of components are indexed as [componentname]__[paramname] all parameters of componentname appear as paramname with its value

  • if deep=True, also contains arbitrary levels of component recursion, e.g., [componentname]__[componentcomponentname]__[paramname], etc

classmethod get_param_defaults()[source]#

Get parameter defaults for the object.

Returns
default_dict: dict with str keys

keys are all parameters of cls that have a default defined in __init__ values are the defaults, as defined in __init__

classmethod get_param_names()[source]#

Get parameter names for the object.

Returns
param_names: list of str, alphabetically sorted list of parameter names of cls
get_params(deep=True)[source]#

Get parameters for this estimator.

Parameters
deepbool, default=True

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns
paramsdict

Parameter names mapped to their values.

get_tag(tag_name, tag_value_default=None, raise_error=True)[source]#

Get tag value from estimator class and dynamic tag overrides.

Parameters
tag_namestr

Name of tag to be retrieved

tag_value_defaultany type, optional; default=None

Default/fallback value if tag is not found

raise_errorbool

whether a ValueError is raised when the tag is not found

Returns
tag_value

Value of the tag_name tag in self. If not found, returns an error if raise_error is True, otherwise it returns tag_value_default.

Raises
ValueError if raise_error is True i.e. if tag_name is not in self.get_tags(
).keys()
get_tags()[source]#

Get tags from estimator class and dynamic tag overrides.

Returns
collected_tagsdict

Dictionary of tag name : tag value pairs. Collected from _tags class attribute via nested inheritance and then any overrides and new tags from _tags_dynamic object attribute.

is_composite()[source]#

Check if the object is composite.

A composite object is an object which contains objects, as parameters. Called on an instance, since this may differ by instance.

Returns
composite: bool, whether self contains a parameter which is BaseObject
property is_fitted[source]#

Whether fit has been called.

classmethod load_from_path(serial)[source]#

Load object from file location.

Parameters
serialresult of ZipFile(path).open(“object)
Returns
deserialized self resulting in output at path, of cls.save(path)
classmethod load_from_serial(serial)[source]#

Load object from serialized memory container.

Parameters
serial1st element of output of cls.save(None)
Returns
deserialized self resulting in output serial, of cls.save(None)
reset()[source]#

Reset the object to a clean post-init state.

Equivalent to sklearn.clone but overwrites self. After self.reset() call, self is equal in value to type(self)(**self.get_params(deep=False))

Detail behaviour: removes any object attributes, except:

hyper-parameters = arguments of __init__ object attributes containing double-underscores, i.e., the string “__”

runs __init__ with current values of hyper-parameters (result of get_params)

Not affected by the reset are: object attributes containing double-underscores class and object methods, class attributes

save(path=None)[source]#

Save serialized self to bytes-like object or to (.zip) file.

Behaviour: if path is None, returns an in-memory serialized self if path is a file location, stores self at that location as a zip file

saved files are zip files with following contents: _metadata - contains class of self, i.e., type(self) _obj - serialized self. This class uses the default serialization (pickle).

Parameters
pathNone or file location (str or Path)

if None, self is saved to an in-memory object if file location, self is saved to that file location. If:

path=”estimator” then a zip file estimator.zip will be made at cwd. path=”/home/stored/estimator” then a zip file estimator.zip will be stored in /home/stored/.

Returns
if path is None - in-memory serialized self
if path is file location - ZipFile with reference to the file
set_config(**config_dict)[source]#

Set config flags to given values.

Parameters
config_dictdict

Dictionary of config name : config value pairs.

Returns
selfreference to self.

Notes

Changes object state, copies configs in config_dict to self._config_dynamic.

set_params(**params)[source]#

Set the parameters of this object.

The method works on simple estimators as well as on nested objects. The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters
**paramsdict

BaseObject parameters

Returns
selfreference to self (after parameters have been set)
set_tags(**tag_dict)[source]#

Set dynamic tags to given values.

Parameters
tag_dictdict

Dictionary of tag name : tag value pairs.

Returns
Self

Reference to self.

Notes

Changes object state by settting tag values in tag_dict as dynamic tags in self.

update(X)[source]#

Update fitted parameters on more data.

If no estimator-specific update method has been implemented, default fall-back is fitting to all observed data so far

State required:

Requires state to be “fitted”.

Accesses in self:

Fitted model attributes ending in “_”. Pointers to seen data, self._X self._is_fitted model attributes ending in “_”.

Writes to self:

Update self._X with X, by appending rows. Updates fitted model attributes ending in “_”.

Parameters
Xtime series in sktime compatible data container format

Time series to which to fit the forecaster in the update.

y can be in one of the following formats, must be same scitype as in fit: Series scitype: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D) Panel scitype: pd.DataFrame with 2-level row MultiIndex,

3D np.ndarray, list of Series pd.DataFrame, or nested pd.DataFrame

Hierarchical scitype: pd.DataFrame with 3 or more level row MultiIndex For further details:

on usage, see forecasting tutorial examples/01_forecasting.ipynb on specification of formats, examples/AA_datatypes_and_datasets.ipynb

Returns
selfreference to self