如何绘制滞后时间序列?

5

我正在尝试绘制一些用于探索性分析的快速图表,并有以下问题:

在ggplot中如何绘制滞后时间序列? 我正在尝试做类似这样的事情:

 ggplot(data,aes(x=xdata,y=xdata-1)+geom_point()

但是xdata-1减去的是xdata的值而不是读取之前的xdata的值。

ggplot似乎没有lag.plot的等效物,我找到了一个在ggfortify包中称为gglagplot的函数,它似乎正是我想要的,但它在最新版本的R(目前为3.2)中不可用。

1个回答

5
您可以使用tail来获取向量的滞后版本:
tail(x,-1)

但是在ggplot2中,美学元素必须是长度为1或具有相同长度,因此您需要将一个值附加到滞后的值,以便将其绘制出来与原始向量进行比较。例如:

x= 1:10
qplot(x=x,y=c(tail(x,-1),0))

另一种选择是使用stats中的lag函数,但这要求您处理时间序列对象。

太棒了,谢谢!我花了一些时间才明白你的评论“将值添加到滞后的值”意味着将列数据按照列表方式扩展到滞后数量,因此我在这里为其他新手添加另一个示例:qplot(x=x,y=c(tail(x,-2),0,0)) - qts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接