statsmodels.tsa.ar_model.ar_select_order

statsmodels.tsa.ar_model.ar_select_order(endog, maxlag, ic='bic', glob=False, trend='c', seasonal=False, exog=None, hold_back=None, period=None, missing='none', old_names=False)[source]

自回归 AR-X(p) 模型阶数选择。

Parameters:
endogarray_like

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

maxlagint

要考虑的最大滞后值。

ic{‘aic’, ‘hqic’, ‘bic’}

在选择中使用的信息准则。

globbool

标志指示是否在所有滞后组合中使用全局搜索。实际上,当maxlag大于15(或可能20)时,此选项在计算上是不可行的,因为全局搜索需要拟合2**maxlag个模型。

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

模型中包含的趋势:

  • ‘n’ - 无趋势。

  • ‘c’ - 仅常量。

  • ‘t’ - 仅时间趋势。

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

seasonalbool

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

exogarray_like, optional

模型中要包含的外生变量。必须与内生变量具有相同的观测数量,并且应与内生变量对齐,使得内生变量[i] 回归到外生变量[i]。

hold_back{None, int}

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

period{None, int}

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

missingstr

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

old_namesbool

指示是否使用v0.11名称或v0.12+名称的标志。

自版本0.13.0起已弃用: old_names已被弃用,并将在0.14发布后被移除。您必须更新任何依赖于旧变量名的代码以使用新名称。

Returns:
AROrderSelectionResults

包含模型和所有拟合模型的完整信息准则的结果持有者。

示例

>>> from statsmodels.tsa.ar_model import ar_select_order
>>> data = sm.datasets.sunspots.load_pandas().data['SUNACTIVITY']

确定最佳滞后结构

>>> mod = ar_select_order(data, maxlag=13)
>>> mod.ar_lags
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

确定具有季节性项的最佳滞后结构

>>> mod = ar_select_order(data, maxlag=13, seasonal=True, period=12)
>>> mod.ar_lags
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

全局确定最优滞后结构

>>> mod = ar_select_order(data, maxlag=13, glob=True)
>>> mod.ar_lags
array([1, 2, 9])

Last update: Oct 16, 2024