使用ggplot2平滑自动关联的时间序列数据

时间:2011-07-07 02:52:42

标签: r ggplot2 time-series

有没有办法在ggplot2中为自动关联的时间序列合并平滑函数?

我有自动关联的时间序列数据,我目前使用手动过程来确定拟合样条曲线的95%CI。

用法和日期位于数据框AB中。我使用的模型的主要组成部分如下:

    d<-AB$Date
    a<-AB$Usage

    o<-order(d)
    d<-d[o]
    a<-a[o]

    id<-ts(1:length(d))
    a1<-ts(a)

    a2<-lag(a1-1)
    tg<-ts.union(a1,id,a2)
    mg<-lm(a1~a2+bs(id,df=df1), data=tg)

从这个模型中我得到拟合平均值和标准误差,用于计算拟合样条的95%CI。

我在ggplot2中看到了lm方法的示例,其中有一个术语来指定模型公式。 当时间序列自动关联时,这种时间序列模型是否可以实现?

感谢。

1 个答案:

答案 0 :(得分:6)

如果您使用 ggplot2 中的简单公式来添加任何模型拟合(如果残差中存在依赖性),CI将会有偏差。

如果我这样做,我会适合 gpplot2 以外的任何模型。然后从该模型预测在协变量范围内的网格均匀间隔点。计算这些预测的置信区间,并将这些以及拟合值和数据组合到单个数据框中。从那里,您可以分别使用geom_line()geom_ribbon()作为拟合模型和置信区间。这允许您计算适当的置信区间,以解决残差中缺乏独立性的问题。

我预见的一个问题是你有一个包含两个协变量的模型,而ggplot()通常会考虑一个响应和一个协变量之间的关系。例如,如果您在ggplot中绘制a1 vs id,但该模型适用于a2 + bs(id),那么您需要先以某种方式对a2进行说明,比如预测对于id中的一系列值,但保持a2固定在某个合理的值,例如样本均值。