Back to models
Forecaster

ARDL

Categorical in XInsamplePred int insampleExogenous

Autoregressive Distributed Lag (ARDL) Model.

Quickstart

python
from sktime.forecasting.ardl import ARDL

estimator = ARDL(lags=None, order=None, fixed=None, causal=False, trend='c', seasonal=False, deterministic=None, hold_back=None, period=None, missing='none', cov_type='nonrobust', cov_kwds=None, use_t=True, auto_ardl=False, maxlag=None, maxorder=None, ic='bic', glob=False, fixed_oos=None, X_oos=None, dynamic=False)

Parameters(21)

lags{int, list[int]}, optional
Only considered if auto_ardl is False The number of lags to include in the model if an integer or the list of lag indices to include. For example, [1, 4] will only include lags 1 and 4 while lags=4 will include lags 1, 2, 3, and 4.
order{int, sequence[int], dict}, optional

Only considered if auto_ardl is False If int, uses lags 0, 1, …, order for all exog variables. If sequence[int], uses the order for all variables. If a dict, applies the lags series by series. If exog is anything other than a DataFrame, the keys are the column index of exog (e.g., 0, 1, …). If a DataFrame, keys are column names.

fixedarray_like, optional
Additional fixed regressors that are not lagged.
causalbool, optional
Whether to include lag 0 of exog variables. If True, only includes lags 1, 2, …
trend{‘n’, ‘c’, ‘t’, ‘ct’, ‘ctt’}, optional

The trend to include in the model:

  • ‘n’ - No trend.

  • ‘c’ - Constant only.

  • ‘t’ - Time trend only.

  • ‘ct’ - Constant and time trend.

  • ‘ctt’ - Constant plus linear plus quadratic time trends.

    N.B. The choice of ‘ctt’ requires statsmodels >= 0.15.0.

seasonalbool, optional
Flag indicating whether to include seasonal dummies in the model. If seasonal is True and trend includes ‘c’, then the first period is excluded from the seasonal terms.
deterministicDeterministicProcess, optional
A deterministic process. If provided, trend and seasonal are ignored. A warning is raised if trend is not “n” and seasonal is not False.
hold_back{None, int}, optional
Initial observations to exclude from the estimation sample. If None, then hold_back is equal to the maximum lag in the model. Set to a non-zero value to produce comparable models with different lag length. For example, to compare the fit of a model with lags=3 and lags=1, set hold_back=3 which ensures that both models are estimated using observations 3,…,nobs. hold_back must be >= the maximum lag in the model.
period{None, int}, optional
The period of the data. Only used if seasonal is True. This parameter can be omitted if using a pandas object for endog that contains a recognized frequency.
missing{“none”, “drop”, “raise”}, optional
Available options are ‘none’, ‘drop’, and ‘raise’. If ‘none’, no nan checking is done. If ‘drop’, any observations with nans are dropped. If ‘raise’, an error is raised. Default is ‘none’.
cov_typestr, optional

The covariance estimator to use. The most common choices are listed below. Supports all covariance estimators that are available in OLS.fit.

  • ‘nonrobust’ - The class OLS covariance estimator that assumes homoskedasticity.

  • ‘HC0’, ‘HC1’, ‘HC2’, ‘HC3’ - Variants of White’s (or Eiker-Huber-White) covariance estimator. HC0 is the standard implementation. The other make corrections to improve the finite sample performance of the heteroskedasticity robust covariance estimator.

  • ‘HAC’ - Heteroskedasticity-autocorrelation robust covariance estimation. Supports cov_kwds.

    • maxlags integer (required): number of lags to use.

    • kernel callable or str (optional)kernel

      currently available kernels are [‘bartlett’, ‘uniform’], default is Bartlett.

cov_kwdsdict, optional

A dictionary of keyword arguments to pass to the covariance estimator. nonrobust and HC# do not support cov_kwds.

use_tbool, optional
A flag indicating that inference should use the Student’s t distribution that accounts for model degree of freedom. If False, uses the normal distribution. If None, defers the choice to the cov_type. It also removes degree of freedom corrections from the covariance estimator when cov_type is ‘nonrobust’.
auto_ardlbool, optional
A flag indicating whether the number of lags should be determined automatically.
maxlagint, optional
Only considered if auto_ardl is True. The maximum lag to consider for the endogenous variable.
maxorder{int, dict}
Only considered if auto_ardl is True. If int, sets a common max lag length for all exog variables. If a dict, then sets individual lag length. They keys are column names if exog is a DataFrame or column indices otherwise.
ic{“aic”, “bic”, “hqic”}, optional
Only considered if auto_ardl is True. The information criterion to use in model selection.
globbool, optional

Only considered if auto_ardl is True. Whether to consider all possible submodels of the largest model or only if smaller order lags must be included if larger order lags are. If True, the number of model considered is of the order 2**(maxlag + k * maxorder) assuming maxorder is an int. This can be very large unless k and maxorder are both relatively small. If False, the number of model considered is of the order maxlag*maxorder**k which may also be substantial when k and maxorder are large.

X_oosarray_like, optional
An array containing out-of-sample values of the exogenous variables. Must have the same number of columns as the X and at least as many rows as the number of out-of-sample forecasts.
fixed_oosarray_like, optional
An array containing out-of-sample values of the fixed variables. Must have the same number of columns as the fixed array and at least as many rows as the number of out-of-sample forecasts.
dynamic{bool, int, str, datetime, Timestamp}, optional

Integer offset relative to start at which to begin dynamic prediction. Prior to this observation, true endogenous values will be used for prediction; starting with this observation and continuing through the end of prediction, forecasted endogenous values will be used instead. Datetime-like objects are not interpreted as offsets. They are instead used to find the index location of dynamic which is then used to compute the offset.

Examples

Use ARDL on macroeconomic data
>>> from sktime.datasets import load_macroeconomic
>>> from sktime.forecasting.ardl import ARDL
>>> from sktime.forecasting.base import ForecastingHorizon
>>> data = load_macroeconomic()
>>> oos = data.iloc[-5:,:]
>>> data = data.iloc[:-5,:]
>>> y = data.realgdp
>>> X = data[[“realcons”, “realinv”]]
>>> X_oos = oos[[“realcons”, “realinv”]]
>>> ardl = ARDL(lags=2, order={“realcons”: 1, “realinv”: 2}, trend=”c”)
>>> ardl.fit(y=y, X=X) ARDL(lags=2, order={‘realcons’: 1, ‘realinv’: 2})
>>> fh = ForecastingHorizon([1, 2, 3])
>>> y_pred = ardl.predict(fh=fh, X=X_oos)