美文网首页
时间序列笔记-ADF检验

时间序列笔记-ADF检验

作者: 新云旧雨 | 来源:发表于2019-08-02 21:48 被阅读0次

    笔记说明

    本次笔记是我在自己实践时间序列分析时学到的知识点。
    主要从应用角度介绍ADF检验而不涉及ADF检验原理,用到的R包为tseries。

    判断序列的平稳性

    时间序列的平稳性是ARIMA模型的重要假设。如果实际碰到的原始数据并不满足平稳性,则可以通过差分、log等数据变换等等手段将原始数据转化成平稳序列再进行后续分析。而首先我们要能判断给定时间序列是否是平稳的。
    最常见的判断方法是图检验法,也就是通过做时序图来判断时间序列的平稳性,如果从时序图上看起来数据的均值、方差等没有随时间变化而变化则可以认为时间序列是平稳的。
    图检验法带有很强的主观性。还可以用ADF检验来判断时间序列是否平稳。

    ADF检验

    ADF(Augmented Dickey-Fuller)检验可用于验证时间序列的平稳性假设。R中,用tseries包的adf.test()函数可以实现ADF检验。如果检验结果具有统计学意义则可以认为序列满足平稳性。

    实例

    以我手头正在做的数据为例:



    光看时序图其实不太好说是否平稳,接下来用ADF检验:(train为数据名)

    adf.test(train)
    

    输出如下:

    Augmented Dickey-Fuller Test

    data: train
    Dickey-Fuller = -2.7529, Lag order = 3, p-value = 0.2704
    alternative hypothesis: stationary

    结果中特意表明了备择假设是序列是平稳的,ADF检验结果没有统计学意义意味着序列是不平稳的。

    对原数据进行差分,再次检验:

    d_train <- diff(train)
    plot(d_train)
    adf.test(d_train[-1])
    

    这里我解释一下第三行代码:adf.test()函数的输入值是不能有缺失值的,而我们进行差分后第一项为缺失,因此我用d_train[-1]去除了差分结果的第一项缺失值。
    检验结果:

    Augmented Dickey-Fuller Test

    data: d_train[-1]
    Dickey-Fuller = -6.1777, Lag order = 3, p-value = 0.01
    alternative hypothesis: stationary
    Warning message:
    In adf.test(d_train[-1]) : p-value smaller than printed p-value

    结果显示P<0.01因此差分后的数据可以认为是平稳的。

    最后我们看一下差分前后的变化:

    #差分前后训练集图
    par(mfrow = c(2,1))
    tsplot(train,ylab="原始数据",xlab="时间(年)",ylim=c(0,3.5))
    tsplot(diff(train),ylab="差分后数据",xlab="时间(年)",ylim=c(-1.75,1.75))
    

    相关文章

      网友评论

          本文标题:时间序列笔记-ADF检验

          本文链接:https://www.haomeiwen.com/subject/fbvrdctx.html