forecaster.recursive._forecaster_recursive_multiseries
forecaster.recursive._forecaster_recursive_multiseries
Classes
| Name | Description |
|---|---|
| ForecasterRecursiveMultiSeries | Recursive autoregressive forecaster for multiple time series. |
ForecasterRecursiveMultiSeries
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries(
estimator=None,
lags=None,
window_features=None,
encoding='ordinal',
transformer_series=None,
transformer_exog=None,
weight_func=None,
series_weights=None,
differentiation=None,
dropna_from_series=False,
fit_kwargs=None,
binner_kwargs=None,
forecaster_id=None,
regressor=None,
)Recursive autoregressive forecaster for multiple time series.
This class turns any estimator compatible with the scikit-learn API into a recursive autoregressive (multi-step) forecaster for multiple series.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| estimator | object | An instance of an estimator or pipeline compatible with the scikit-learn API. | None |
| lags | (int, list, np.ndarray, range, None) | Lags used as predictors. Index starts at 1, so lag 1 is equal to t-1. - int: include lags from 1 to lags (included). - list, 1d numpy ndarray or range: include only lags present in lags, all elements must be int. - None: no lags are included as predictors. |
None |
| window_features | (object, list, None) | Instance or list of instances used to create window features from the original time series. | None |
| encoding | (str, None) | Encoding used to identify the different series. - 'ordinal': single column with integer values [0, n_series - 1]. - 'ordinal_category': same as ‘ordinal’ but with pandas.category dtype. - 'onehot': binary column for each series. - None: no series identification column is created. Defaults to ‘ordinal’. |
'ordinal' |
| transformer_series | (transformer, dict, None) |
Preprocessor compatible with scikit-learn (fit/transform/inverse_transform). Applied to each series before training. ColumnTransformers are not allowed. - Single transformer: cloned and applied to all series. - Dict: different transformer per series. | None |
| transformer_exog | (transformer, None) |
Preprocessor for exogenous variables. inverse_transform is not available for ColumnTransformers. |
None |
| weight_func | (Callable, dict, None) | Function defining weights for each sample based on index. Only used if estimator supports sample_weight. - Single function: applied to all series. - Dict: {'series_name': Callable}, others get weight 1. |
None |
| series_weights | (dict, None) | Weights per series {'series_name': float}. Applied if estimator supports sample_weight. Others get weight 1. If None, all levels have weight 1. |
None |
| differentiation | (int, dict, None) | Order of differencing applied to series. - int: same order for all series. - dict: different order per series (keys are series names). - None: no differencing. |
None |
| dropna_from_series | bool | If True, drops rows with NaNs in X_train/y_train. If False, leaves NaNs and warns. Defaults to False. |
False |
| fit_kwargs | (dict, None) | Additional arguments for the estimator’s fit method. |
None |
| binner_kwargs | (dict, None) | Arguments for QuantileBinner used for residuals. Includes n_bins, method, subsample, random_state, dtype. |
None |
| forecaster_id | (str, int, None) | Identifier for the forecaster. | None |
| regressor | object | Deprecated, alias for estimator. |
None |
Attributes
| Name | Type | Description |
|---|---|---|
| estimator | object | Estimator or pipeline compatible with scikit-learn. |
| lags | np.ndarray | Lags used as predictors. |
| lags_names | list | Names of the lags used as predictors. |
| max_lag | int | Maximum lag included in lags. |
| window_features | list | Classes used to create window features. |
| window_features_names | list | Names of the window features in X_train. |
| window_features_class_names | list | Names of classes for window features. |
| max_size_window_features | int | Maximum window size for window features. |
| window_size | int | Required window size for predictors. Max of max_lag and max_size_window_features, plus differentiation order if applicable. |
| encoding | str | Encoding used to identify the different series. |
| encoder | sklearn.preprocessing |
Scikit-learn encoder for series. |
| encoding_mapping_ | dict | Mapping of the encoding for series identities. |
| transformer_series | (transformer, dict) |
Transformer(s) for the series. |
| transformer_series_ | dict | Internal dictionary of series transformers. |
| transformer_exog | transformer |
Transformer for exogenous variables. |
| weight_func | (Callable, dict) | Weighting function(s). |
| weight_func_ | dict | Internal dictionary of weighting functions. |
| source_code_weight_func | (str, dict) | Source code of weighting functions. |
| series_weights | dict | Weights associated with each series. |
| series_weights_ | dict | Internal dictionary of series weights. |
| differentiation | (int, dict) | Differencing order applied to series. |
| differentiation_max | int | Maximum order of differentiation. |
| differentiator | (TimeSeriesDifferentiator, dict) |
Differentiation objects. |
| differentiator_ | dict | Internal dictionary of differentiators. |
| dropna_from_series | bool | Whether to drop NaNs from training matrices. |
| last_window_ | dict | Last training window per series in original scale. |
| index_type_ | type | Type of training index. |
| index_freq_ | str | Frequency of training index. |
| training_range_ | dict | First/last training index values per series. |
| series_names_in_ | list | Series names provided during training. |
| exog_in_ | bool | True if trained with exogenous variables. |
| exog_names_in_ | list | Names of exogenous variables used. |
| exog_type_in_ | type | Type of exogenous data used. |
| exog_dtypes_in_ | dict | Exogenous data types before transformation. |
| exog_dtypes_out_ | dict | Exogenous data types after transformation. |
| X_train_series_names_in_ | list | Series names in the internal X_train. |
| X_train_window_features_names_out_ | list | Window feature names in X_train. |
| X_train_exog_names_out_ | list | Exogenous variable names in X_train. |
| X_train_features_names_out_ | list | All feature column names in X_train. |
| fit_kwargs | dict | Arguments passed to estimator’s fit. |
| in_sample_residuals_ | dict | Training residuals (up to 10k per series). |
| in_sample_residuals_by_bin_ | dict | Binned in-sample residuals. |
| out_sample_residuals_ | dict | Non-training residuals (up to 10k per series). |
| out_sample_residuals_by_bin_ | dict | Binned out-of-sample residuals. |
| binner | dict | QuantileBinner objects per series. |
| binner_intervals_ | dict | Binning intervals per series. |
| binner_kwargs | dict | Arguments used for QuantileBinner. |
| creation_date | str | Forecaster creation date. |
| is_fitted | bool | True if the forecaster has been fitted. |
| fit_date | str | Date of last fit. |
| spotforecast_version | str | Version of the library used. |
| python_version | str | Python version used. |
| forecaster_id | (str, int) | Forecaster identifier. |
Notes
Weights are used to control the influence of each observation. ForecasterRecursiveMultiSeries accepts two types of weights: - series_weights: Controls relative importance of each series. - weight_func: Controls relative importance based on index values. If both are provided, they are multiplied. Negative weights are not allowed.
Methods
| Name | Description |
|---|---|
| create_predict_X | Create the predictors needed to predict steps ahead. |
| create_sample_weights | Create weights for each observation according to the forecaster’s attributes |
| create_train_X_y | Create training matrices from multiple time series and exogenous variables. |
| fit | Training Forecaster. |
| get_feature_importances | Return feature importances of the estimator. |
| predict | Predict n steps ahead. |
| predict_bootstrapping | Generate multiple forecasting predictions using a bootstrapping process. |
| predict_dist | Fit a given probability distribution for each step. |
| predict_interval | Predict n steps ahead and estimate prediction intervals. |
| predict_quantiles | Calculate the specified quantiles for each step. |
| set_fit_kwargs | Set new values for the additional keyword arguments passed to the fit method. |
| set_in_sample_residuals | Set in-sample residuals in case they were not calculated during training. |
| set_lags | Set new value to the attribute lags. |
| set_out_sample_residuals | Set new values to the attribute out_sample_residuals_. |
| set_params | Set new values to the parameters of the scikit-learn model. |
| set_window_features | Set new value to the attribute window_features. |
create_predict_X
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.create_predict_X(
steps,
levels=None,
last_window=None,
exog=None,
suppress_warnings=False,
check_inputs=True,
)Create the predictors needed to predict steps ahead.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| steps | int | Number of steps to predict. | required |
| levels | (str, list, None) | Time series to be predicted. Defaults to None. |
None |
| last_window | (pd.DataFrame, None) | Series values for predictors. Defaults to None. |
None |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| suppress_warnings | bool | If True, suppress warnings. Defaults to False. |
False |
| check_inputs | bool | If True, check input for warnings/errors. Defaults to True. |
True |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | pd.DataFrame: Long-format DataFrame with the predictors. |
create_sample_weights
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.create_sample_weights(
series_names_in_,
X_train,
)Create weights for each observation according to the forecaster’s attributes series_weights and weight_func. The resulting weights are product of both types of weights.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| series_names_in_ | list | Names of the series (levels) used during training. | required |
| X_train | pd.DataFrame | Dataframe created with the create_train_X_y method. |
required |
Returns
| Name | Type | Description |
|---|---|---|
| np.ndarray | np.ndarray: Weights to use in fit method. |
create_train_X_y
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.create_train_X_y(
series,
exog=None,
suppress_warnings=False,
)Create training matrices from multiple time series and exogenous variables.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| series | (pd.DataFrame, dict) | Training time series. | required |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| suppress_warnings | bool | If True, skforecast warnings will be suppressed during creation. Defaults to False. |
False |
Returns
| Name | Type | Description |
|---|---|---|
| tuple | tuple[pd.DataFrame, pd.Series] | A tuple containing: - X_train (pd.DataFrame): Training values (predictors). - y_train (pd.Series): Values (target) of the time series related to each row of X_train. |
Notes
See _create_train_X_y for detailed information on input types.
fit
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.fit(
series,
exog=None,
store_last_window=True,
store_in_sample_residuals=False,
random_state=123,
suppress_warnings=False,
)Training Forecaster.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| series | (pd.DataFrame, dict) | Training time series. | required |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| store_last_window | (bool, list) | Whether or not to store the last window (last_window_) of training data. Defaults to True. |
True |
| store_in_sample_residuals | bool | If True, in-sample residuals will be stored in the forecaster object after fitting. Defaults to False. |
False |
| random_state | int | Set a seed for the random generator so that the stored sample residuals are always deterministic. Defaults to 123. |
123 |
| suppress_warnings | bool | If True, skforecast warnings will be suppressed during training. Defaults to False. |
False |
Returns
| Name | Type | Description |
|---|---|---|
| None | None |
Notes
- If
seriesis a wide-format pandas DataFrame, each column represents a different time series. - If
seriesis a long-format pandas DataFrame with a MultiIndex, the first level of the index must contain the series IDs. - If series is a dictionary, each key must be a series ID.
- If
exogis a wide-format pandas DataFrame, it must share the same index type as series. - If
exogis a long-format pandas Series or DataFrame with a MultiIndex, the first level contains the series IDs. - If
exogis a dictionary, each key must correspond to a series ID.
get_feature_importances
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.get_feature_importances(
sort_importance=True,
)Return feature importances of the estimator.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| sort_importance | bool | If True, sorts the feature importances in descending order. Defaults to True. |
True |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | pd.DataFrame: Feature importances associated with each predictor. |
predict
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.predict(
steps,
levels=None,
last_window=None,
exog=None,
suppress_warnings=False,
check_inputs=True,
)Predict n steps ahead.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| steps | int | Number of steps to predict. | required |
| levels | (str, list, None) | Time series to be predicted. Defaults to None. |
None |
| last_window | (pd.DataFrame, None) | Series values for predictors. Defaults to None. |
None |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| suppress_warnings | bool | If True, suppress warnings. Defaults to False. |
False |
| check_inputs | bool | If True, check input for warnings/errors. Defaults to True. |
True |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | pd.DataFrame: Long-format DataFrame with the predictions. |
predict_bootstrapping
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.predict_bootstrapping(
steps,
levels=None,
last_window=None,
exog=None,
n_boot=250,
use_in_sample_residuals=True,
use_binned_residuals=True,
random_state=123,
suppress_warnings=False,
)Generate multiple forecasting predictions using a bootstrapping process.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| steps | int | Number of steps to predict. | required |
| levels | (str, list, None) | Time series to be predicted. Defaults to None. |
None |
| last_window | (pd.DataFrame, None) | Series values used to create predictors. Defaults to None. |
None |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| n_boot | int | Number of bootstrapping iterations. Defaults to 250. |
250 |
| use_in_sample_residuals | bool | If True, use residuals from training data. Defaults to True. |
True |
| use_binned_residuals | bool | If True, residuals are selected based on predicted values. Defaults to True. |
True |
| random_state | int | Seed for reproducibility. Defaults to 123. |
123 |
| suppress_warnings | bool | If True, suppress warnings. Defaults to False. |
False |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | pd.DataFrame: Long-format DataFrame with the bootstrapping predictions. |
References
[1] Forecasting: Principles and Practice (3rd ed) Rob J Hyndman and George Athanasopoulos. https://otexts.com/fpp3/prediction-intervals.html
predict_dist
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.predict_dist(
steps,
distribution,
levels=None,
last_window=None,
exog=None,
n_boot=250,
use_in_sample_residuals=True,
use_binned_residuals=True,
random_state=123,
suppress_warnings=False,
)Fit a given probability distribution for each step.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| steps | int | Number of steps to predict. | required |
| distribution | object | A distribution object from scipy.stats. | required |
| levels | (str, list, None) | Time series to be predicted. Defaults to None. |
None |
| last_window | (pd.DataFrame, None) | Series values used to create predictors. Defaults to None. |
None |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| n_boot | int | Number of bootstrapping iterations. Defaults to 250. |
250 |
| use_in_sample_residuals | bool | If True, use residuals from training data. Defaults to True. |
True |
| use_binned_residuals | bool | If True, residuals are selected based on predicted values. Defaults to True. |
True |
| random_state | int | Seed for reproducibility. Defaults to 123. |
123 |
| suppress_warnings | bool | If True, suppress warnings. Defaults to False. |
False |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | pd.DataFrame: Long-format DataFrame with parameters of the fitted distribution. |
predict_interval
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.predict_interval(
steps,
levels=None,
last_window=None,
exog=None,
method='conformal',
interval=[5, 95],
n_boot=250,
use_in_sample_residuals=True,
use_binned_residuals=True,
random_state=123,
suppress_warnings=False,
)Predict n steps ahead and estimate prediction intervals.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| steps | int | Number of steps to predict. | required |
| levels | (str, list, None) | Time series to be predicted. Defaults to None. |
None |
| last_window | (pd.DataFrame, None) | Series values used to create predictors. Defaults to None. |
None |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| method | str | Technique used to estimate prediction intervals. Options: ‘bootstrapping’, ‘conformal’. Defaults to 'conformal'. |
'conformal' |
| interval | (float, list, tuple) | Confidence level of the prediction interval. Defaults to [5, 95]. |
[5, 95] |
| n_boot | int | Number of bootstrapping iterations. Defaults to 250. |
250 |
| use_in_sample_residuals | bool | If True, use residuals from training data. Defaults to True. |
True |
| use_binned_residuals | bool | If True, residuals are selected based on predicted values. Defaults to True. |
True |
| random_state | int | Seed for reproducibility. Defaults to 123. |
123 |
| suppress_warnings | bool | If True, suppress warnings. Defaults to False. |
False |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | pd.DataFrame: Long-format DataFrame with predictions and intervals. |
predict_quantiles
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.predict_quantiles(
steps,
levels=None,
last_window=None,
exog=None,
quantiles=[0.05, 0.5, 0.95],
n_boot=250,
use_in_sample_residuals=True,
use_binned_residuals=True,
random_state=123,
suppress_warnings=False,
)Calculate the specified quantiles for each step.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| steps | int | Number of steps to predict. | required |
| levels | (str, list, None) | Time series to be predicted. Defaults to None. |
None |
| last_window | (pd.DataFrame, None) | Series values used to create predictors. Defaults to None. |
None |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| quantiles | (list, tuple) | Sequence of quantiles to compute (0 to 1). Defaults to [0.05, 0.5, 0.95]. |
[0.05, 0.5, 0.95] |
| n_boot | int | Number of bootstrapping iterations. Defaults to 250. |
250 |
| use_in_sample_residuals | bool | If True, use residuals from training data. Defaults to True. |
True |
| use_binned_residuals | bool | If True, residuals are selected based on predicted values. Defaults to True. |
True |
| random_state | int | Seed for reproducibility. Defaults to 123. |
123 |
| suppress_warnings | bool | If True, suppress warnings. Defaults to False. |
False |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | pd.DataFrame: Long-format DataFrame with the predicted quantiles. |
set_fit_kwargs
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.set_fit_kwargs(
fit_kwargs,
)Set new values for the additional keyword arguments passed to the fit method.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| fit_kwargs | dict | Dict of the form {“argument”: new_value}. | required |
Returns
| Name | Type | Description |
|---|---|---|
| None | None |
set_in_sample_residuals
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.set_in_sample_residuals(
series,
exog=None,
random_state=123,
suppress_warnings=False,
)Set in-sample residuals in case they were not calculated during training.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| series | (pd.DataFrame, dict) | Training time series. | required |
| exog | (pd.Series, pd.DataFrame, dict, None) | Exogenous variable/s included as predictor/s. Defaults to None. |
None |
| random_state | int | Seed for reproducibility. Defaults to 123. |
123 |
| suppress_warnings | bool | If True, suppress warnings. Defaults to False. |
False |
Returns
| Name | Type | Description |
|---|---|---|
| None | None |
set_lags
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.set_lags(
lags=None,
)Set new value to the attribute lags.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| lags | (int, list, np.ndarray, range, None) | Lags used as predictors. Defaults to None. |
None |
Returns
| Name | Type | Description |
|---|---|---|
| None | None |
set_out_sample_residuals
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.set_out_sample_residuals(
y_true,
y_pred,
append=False,
random_state=123,
)Set new values to the attribute out_sample_residuals_.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| y_true | dict | Dictionary with the true values of the time series. | required |
| y_pred | dict | Dictionary with the predicted values of the time series. | required |
| append | bool | If True, new residuals are added to the existing ones. Defaults to False. |
False |
| random_state | int | Seed for reproducibility. Defaults to 123. |
123 |
Returns
| Name | Type | Description |
|---|---|---|
| None | None |
Notes
Out-of-sample residuals can only be stored for series seen during fit.
set_params
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.set_params(
params,
)Set new values to the parameters of the scikit-learn model.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| params | dict | Parameter values. | required |
Returns
| Name | Type | Description |
|---|---|---|
| None | None |
set_window_features
forecaster.recursive._forecaster_recursive_multiseries.ForecasterRecursiveMultiSeries.set_window_features(
window_features=None,
)Set new value to the attribute window_features.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| window_features | (object, list, None) | Instance or list of instances used to create window features. Defaults to None. |
None |
Returns
| Name | Type | Description |
|---|---|---|
| None | None |