【问题标题】:Lag in R Time Series is not visibleR 时间序列中的滞后不可见
【发布时间】:2014-05-25 19:02:37
【问题描述】:

我有一个时间序列和一个相同的滞后版本。但是当我将它们并排绘制时,它们看起来相同。延迟到哪里去了?

set.seed(1)
x = rnorm(100)
y = lag(x, 10)
df = data.frame(x, y)
plot (ts(df)) # they look exactly the same, no time shift 

在控制台上打印这两个系列也证实了这种行为。我知道 R 在内部只是为滞后保持一个偏移量。但我希望它出现在情节中。他们应该看起来改变了。

【问题讨论】:

    标签: r time-series lag


    【解决方案1】:

    首先将您的x 变成ts 对象:

    > foo <- ts(x[1:24],frequency=12)
    > foo
              Jan         Feb         Mar         Apr         May         Jun
    1 -0.62645381  0.18364332 -0.83562861  1.59528080  0.32950777 -0.82046838
    2 -0.62124058 -2.21469989  1.12493092 -0.04493361 -0.01619026  0.94383621
              Jul         Aug         Sep         Oct         Nov         Dec
    1  0.48742905  0.73832471  0.57578135 -0.30538839  1.51178117  0.38984324
    2  0.82122120  0.59390132  0.91897737  0.78213630  0.07456498 -1.98935170
    > lag(foo,12)
              Jan         Feb         Mar         Apr         May         Jun
    0 -0.62645381  0.18364332 -0.83562861  1.59528080  0.32950777 -0.82046838
    1 -0.62124058 -2.21469989  1.12493092 -0.04493361 -0.01619026  0.94383621
              Jul         Aug         Sep         Oct         Nov         Dec
    0  0.48742905  0.73832471  0.57578135 -0.30538839  1.51178117  0.38984324
    1  0.82122120  0.59390132  0.91897737  0.78213630  0.07456498 -1.98935170
    

    您看到lag(foo,12) 移动了十二个月。让我们绘制:

    > par(mfrow=c(2,1))
    > plot(foo)
    > plot(lag(foo,12))
    

    foo 及其滞后系列看起来仍然相同 - 但您现在看到水平轴移动了 1,这是滞后(与 frequency 相同)。

    【讨论】:

    • 其实你不需要设置frequency,你可以在绘制时更好地看到它。类似set.seed(1); x = ts(rnorm(100)); y = lag(x, k=10); plot(x, col = "red"); lines(y, col = "blue")
    猜你喜欢
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2023-03-16
    • 2013-11-17
    • 2012-09-08
    • 1970-01-01
    相关资源
    最近更新 更多