R时间序列中的滞后不可见

时间:2014-05-25 19:02:37

标签: r time-series lag

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

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内部只是保持滞后的偏移量。但是我想要在情节中出现。他们应该转移。

1 个答案:

答案 0 :(得分:0)

首先将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)已转移了12个月。我们的情节是:

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

lag

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