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’,则从季节性项中排除第一个周期。
- deterministic
DeterministicProcess,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_orderARDL(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.ARIMAARIMA模型估计
注释
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\) 是白噪声冲击。如果
causal为True,则不包括外生变量的第 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)模型的费舍尔信息矩阵。
初始化模型(无操作)。
loglike(params)模型的对数似然值。
predict(params[, start, end, dynamic, exog, ...])样本内预测和样本外预测。
score(params)模型的得分向量。
属性
模型中包含的自回归滞后项
ARDL(p,q)的顺序
指示ARDL具有因果关系的标志
用于构建模型的确定性方法
模型的自由度。
模型中包含的外生变量的滞后
内生变量的名称。
模型中包含的外生变量名称
用于构建模型的固定数据
初始观测值的数量。
季节性成分的周期。
指示模型包含季节性成分的标志。
模型中使用的趋势。