有没有办法在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方法的示例,其中有一个术语来指定模型公式。 当时间序列自动关联时,这种时间序列模型是否可以实现?
感谢。
答案 0 :(得分:6)
如果您使用 ggplot2 中的简单公式来添加任何模型拟合(如果残差中存在依赖性),CI将会有偏差。
如果我这样做,我会适合 gpplot2 以外的任何模型。然后从该模型预测在协变量范围内的网格均匀间隔点。计算这些预测的置信区间,并将这些以及拟合值和数据组合到单个数据框中。从那里,您可以分别使用geom_line()
和geom_ribbon()
作为拟合模型和置信区间。这允许您计算适当的置信区间,以解决残差中缺乏独立性的问题。
我预见的一个问题是你有一个包含两个协变量的模型,而ggplot()
通常会考虑一个响应和一个协变量之间的关系。例如,如果您在ggplot中绘制a1
vs id
,但该模型适用于a2 + bs(id)
,那么您需要先以某种方式对a2
进行说明,比如预测对于id
中的一系列值,但保持a2
固定在某个合理的值,例如样本均值。