statsmodels.tsa.ardl.ARDL

class statsmodels.tsa.ardl.ARDL(endog, lags, exog=None, order=0, trend='c', *, fixed=None, causal=False, seasonal=False, deterministic=None, hold_back=None, period=None, missing='none')[source]

自回归分布滞后(ARDL)模型

Parameters:
endogarray_like

一个一维的内生响应变量。因变量。

lags{int, list[int]}

如果是一个整数,则表示模型中包含的滞后阶数;如果是滞后阶数的列表,则表示要包含的滞后阶数索引。例如,[1, 4]将仅包含滞后阶数1和4,而lags=4将包含滞后阶数1、2、3和4。

exogarray_like

模型中要包含的外生变量。可以是DataFrame或可以转换为NumPy数组的二维类数组结构。

order{int, sequence[int], dict}

如果为整数,则对所有外生变量使用滞后阶数 0, 1, …, order。如果为序列[整数],则对所有变量使用 order。如果为字典,则按序列应用滞后阶数。如果 exog 不是 DataFrame,则键为 exog 的列索引(例如,0, 1, …)。如果为 DataFrame,则键为列名。

fixedarray_like

额外的固定回归变量,这些变量不是滞后的。

causalbool, optional

是否包含外生变量的滞后0项。如果为True,则仅包含滞后1, 2, …

trend{‘n’, ‘c’, ‘t’, ‘ct’}, optional

模型中包含的趋势:

  • ‘n’ - 无趋势。

  • ‘c’ - 仅常量。

  • ‘t’ - 仅时间趋势。

  • ‘ct’ - 常数和时间趋势。

默认值为‘c’。

seasonalbool, optional

指示是否在模型中包含季节性虚拟变量的标志。如果 seasonal 为 True 且 trend 包含 ‘c’,则从季节性项中排除第一个周期。

deterministicDeterministicProcess, optional

一个确定性过程。如果提供,趋势和季节性将被忽略。如果趋势不是“n”且季节性不是False,则会发出警告。

hold_back{None, int}, optional

初始观测值不包含在估计样本中。如果为None,则hold_back等于模型中的最大滞后值。设置为非零值以生成具有不同滞后长度的可比较模型。例如,要比较具有lags=3和lags=1的模型的拟合度,请设置hold_back=3,以确保两个模型都使用观测值3,…,nobs进行估计。hold_back必须大于或等于模型中的最大滞后值。

period{None, int}, optional

数据的周期。仅在 seasonal 为 True 时使用。如果使用包含已识别频率的 pandas 对象作为 endog,则可以省略此参数。

missing{“none”, “drop”, “raise”}, optional

可用的选项是‘none’、‘drop’和‘raise’。如果选择‘none’,则不进行NaN检查。如果选择‘drop’,则会删除任何包含NaN的观测值。如果选择‘raise’,则会引发错误。默认值是‘none’。

Attributes:
ar_lags

模型中包含的自回归滞后项

ardl_order

ARDL(p,q)的顺序

causal

指示ARDL具有因果关系的标志

deterministic

用于构建模型的确定性方法

df_model

模型的自由度。

dl_lags

模型中包含的外生变量的滞后

endog_names

内生变量的名称。

exog_names

模型中包含的外生变量名称

fixed

用于构建模型的固定数据

hold_back

初始观测值的数量。

period

季节性成分的周期。

seasonal

指示模型包含季节性成分的标志。

trend

模型中使用的趋势。

另请参阅

statsmodels.tsa.ar_model.AutoReg

具有可选外生回归变量的自回归模型估计

statsmodels.tsa.ardl.UECM

无约束误差修正模型估计

statsmodels.tsa.statespace.sarimax.SARIMAX

带有可选外生回归变量的季节性ARIMA模型估计

statsmodels.tsa.arima.model.ARIMA

ARIMA模型估计

注释

ARDL的完整规范是

\[Y_t = \delta_0 + \delta_1 t + \delta_2 t^2 + \sum_{i=1}^{s-1} \gamma_i I_{[(\mod(t,s) + 1) = i]} + \sum_{j=1}^p \phi_j Y_{t-j} + \sum_{l=1}^k \sum_{m=0}^{o_l} \beta_{l,m} X_{l, t-m} + Z_t \lambda + \epsilon_t\]

其中 \(\delta_\bullet\) 捕捉趋势,\(\gamma_\bullet\) 捕捉季节性变化,s 是季节性的周期,p 是内生变量的滞后长度,k 是外生变量的数量 \(X_{l}\)\(o_l\) 包括 \(X_{l}\) 的滞后长度,\(Z_t\) 是包含的固定回归变量,\(\epsilon_t\) 是白噪声冲击。如果 causalTrue,则不包括外生变量的第 0 阶滞后,并且求和从 m=1 开始。

请参阅笔记本 自回归分布滞后模型 以获取概述。

示例

>>> from statsmodels.tsa.api import ARDL
>>> from statsmodels.datasets import danish_data
>>> data = danish_data.load_pandas().data
>>> lrm = data.lrm
>>> exog = data[["lry", "ibo", "ide"]]

一个基本模型,其中所有变量都包含3个滞后项

>>> ARDL(data.lrm, 3, data[["lry", "ibo", "ide"]], 3)

可以使用字典来传递自定义滞后阶数

>>> ARDL(data.lrm, [1, 3], exog, {"lry": 1, "ibo": 3, "ide": 2})

设置因果关系会从外生变量中移除第0滞后项

>>> exog_lags = {"lry": 1, "ibo": 3, "ide": 2}
>>> ARDL(data.lrm, [1, 3], exog, exog_lags, causal=True)

字典也可以用于传递要包含的特定滞后项。序列包含要包含的特定滞后项,而整数则扩展为包含 [0, 1, …, lag]。如果 causal 为 False,则排除第 0 个滞后项。

>>> ARDL(lrm, [1, 3], exog, {"lry": [0, 1], "ibo": [0, 1, 3], "ide": 2})

当使用NumPy数组时,字典键是列索引。

>>> import numpy as np
>>> lrma = np.asarray(lrm)
>>> exoga = np.asarray(exog)
>>> ARDL(lrma, 3, exoga, {0: [0, 1], 1: [0, 1, 3], 2: 2})

方法

fit(*[, cov_type, cov_kwds, use_t])

估计模型参数。

from_formula(公式, 数据[, 滞后阶数, 阶数, ...])

从公式构建一个ARDL模型

hessian(params)

模型的海森矩阵。

information(params)

模型的费舍尔信息矩阵。

initialize()

初始化模型(无操作)。

loglike(params)

模型的对数似然值。

predict(params[, start, end, dynamic, exog, ...])

样本内预测和样本外预测。

score(params)

模型的得分向量。

属性

ar_lags

模型中包含的自回归滞后项

ardl_order

ARDL(p,q)的顺序

causal

指示ARDL具有因果关系的标志

deterministic

用于构建模型的确定性方法

df_model

模型的自由度。

dl_lags

模型中包含的外生变量的滞后

endog_names

内生变量的名称。

exog_names

模型中包含的外生变量名称

fixed

用于构建模型的固定数据

hold_back

初始观测值的数量。

period

季节性成分的周期。

seasonal

指示模型包含季节性成分的标志。

trend

模型中使用的趋势。


Last update: Oct 16, 2024