ggplot&霍特冬天预测

时间:2014-05-30 18:29:16

标签: r ggplot2 prediction holtwinters

使用数据UKDriverDeaths

尝试使用Holt-Winters预测功能& ggplot()。

基本上重现ggplot中的数据。

data('UKDriverDeaths')    
past <- window(UKDriverDeaths, end = c(1982, 12))
hw <- HoltWinters(past)
pred <- predict(hw, n.ahead = 10)
plot(hw, pred, ylim = range(UKDriverDeaths))
lines(UKDriverDeaths)

enter image description here

我希望通过1983年的实际数据来展示霍特冬天的预测。 这两个问题是:

1)ggplot不了解ts数据。

2)使用HoltWinters()使用ts数据,而不是zoo(日期或xts)。我需要预测&amp;要显示的切割点的实际数据(通常是+ geom_line(aes())就可以了)

如果可能的置信区间很好。

非常感谢,绝对坚持

1 个答案:

答案 0 :(得分:3)

我使用xts自动合并数据。

library(xts)
ts_pred <- ts(c(hw$fitted[, 1], pred), start = 1970, frequency = 12)
df <- merge(as.xts(ts_pred), as.xts(UKDriverDeaths))
names(df) <- c("predicted", "actual")
ggplot(df, aes(x=as.POSIXct(index(df)))) + 
  geom_line(aes(y=predicted), col='red') + 
  geom_line(aes(y=actual), col='black') + 
  theme_bw() +
  geom_vline(xintercept=as.numeric(as.POSIXct("1982-12-01")), linetype="dashed") + 
  labs(title="Holt-Winters filtering\n", x="Time", y="Observed / Fitted") + 
  theme(plot.title = element_text(size=18, face="bold"))

enter image description here