【问题标题】:adfuller number of lags returned返回的滞后数
【发布时间】:2019-12-28 02:22:45
【问题描述】:

我有以下代码 sn-p 用于对我的时间序列执行 adfuller 测试

def dickey_fuller(series):
    X = series
    result = adfuller(X, regression='ct')
    print('ADF Statistic: %f' % result[0])
    print('p-value: %f' % result[1])
    print('Lags used: %d' % result[2])
    print('Critical Values:')
    for key, value in result[4].items():
        print('%s: %.3f' % (key, value))
    print('-----------------------------------------------')

默认情况下这些是更丰富的值:

statsmodels.tsa.stattools.adfuller(x, maxlag=None, regression='c', autolag='AIC', store=False, regresults=False)

如 statsmodels 文档中所述,当我们有 autolag='AIC' 时,它将选择使信息标准最小化的滞后数。

以下是我对我的数据运行此测试的示例输出:

ADF Statistic: -7.359845
p-value: 0.000000
Lags used: 7
Critical Values:
1%: -4.021
5%: -3.441
10%: -3.145

我有兴趣在我的数据中包含适当的滞后数作为列,这里使用的滞后数是 7。在这种情况下,我应该将所有滞后从 1 到 7 取还是只取第 7 个滞后?

或者换句话说,返回的滞后数是滞后长度还是采取的最佳滞后?

【问题讨论】:

    标签: python-3.x time-series statsmodels


    【解决方案1】:

    根据docs,它返回使用的滞后S数。但通常,在谈论此类模型时,有人会认为:AR(2) 是指使用两个滞后的自回归模型。如果您像每隔七次或十二次延迟一样使用 一些 延迟,这是一个季节性组件。

    【讨论】:

    • 谢谢@NaturalFrequency,这样我就可以安全地选择所有滞后到第 7 个?我想将这 7 个滞后作为列插入到我的数据中。
    • @Loulou 没问题!如果这对您有用,请不要忘记将问题标记为“已回答”
    • 好的,谢谢!
    猜你喜欢
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2014-09-04
    • 2018-06-12
    • 1970-01-01
    • 2022-10-06
    相关资源
    最近更新 更多