R 使用动态图绘制“预测”预测`

R 使用动态图绘制“预测”预测`,r,forecasting,dygraphs,R,Forecasting,Dygraphs,我想用dygraphs绘制一个forecast包时间序列模型的预测。建议采用以下方法进行实际预测: hw <- HoltWinters(ldeaths) p <- predict(hw, n.ahead = 36, prediction.interval = TRUE) all <- cbind(ldeaths, p) dygraph(all, "Deaths from Lung Disease (UK)") %>% dySeries("ldeaths", labe

我想用
dygraphs
绘制一个
forecast
包时间序列模型的预测。建议采用以下方法进行实际预测:

hw <- HoltWinters(ldeaths)
p <- predict(hw, n.ahead = 36, prediction.interval = TRUE)
all <- cbind(ldeaths, p)

dygraph(all, "Deaths from Lung Disease (UK)") %>%
  dySeries("ldeaths", label = "Actual") %>%
  dySeries(c("p.lwr", "p.fit", "p.upr"), label = "Predicted")
str
提供了有关对象的更多信息
all

> str(all)
 Time-Series [1:108, 1:4] from 1974 to 1983: 3035 2552 2704 2554 2014 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:4] "ldeaths" "p.fit" "p.upr" "p.lwr"
更多检查表明
all
是一个数组:

> tail(all)
         ldeaths     p.fit    p.upr     p.lwr
Jul 1982      NA 1128.3744 1656.127  600.6217
Aug 1982      NA  948.6089 1478.090  419.1282
Sep 1982      NA  960.1201 1491.429  428.8112
Oct 1982      NA 1326.5626 1859.802  793.3235
Nov 1982      NA 1479.0320 2014.306  943.7583
Dec 1982      NA 1929.8349 2467.249 1392.4206
> dim(all)
[1] 108   4
> is.array(all)
[1] TRUE
我无法使用
forecast
包中的预测创建此类对象

使用我的
forecast
model
unemp.mod
创建预测:

> f <- forecast(unemp.mod)
> f
         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Apr 2017       4.528274 4.287324 4.769224 4.159773 4.896775
May 2017       4.515263 4.174337 4.856189 3.993861 5.036664
Jun 2017       4.493887 4.055472 4.932303 3.823389 5.164386
Jul 2017       4.479992 3.936385 5.023599 3.648617 5.311367
Aug 2017       4.463073 3.807275 5.118871 3.460116 5.466030

有没有人对如何基于
预测
模型预测创建使用
动态图
绘图的正确对象有任何建议?

动态图::动态图
中,必须使用
数据
参数

时间序列数据或数字数据。对于时间序列,这必须是 xts对象或可转换为xts的对象。用于数字 数据,这必须是命名列表或数据帧,其中 元素/列提供x轴值和所有后续值 元素/列提供一个或多个y值系列

因此,您需要使用
summary
从forecast类中提取数据。将其转换为
xts
类,然后使用
dygraph

library(forecast)
f <- forecast(ldeaths)

#use summary to get the model fit by forecast package
df <- summary(f)

#convert into a Time-Series class
dfTs <- xts(df, as.Date(paste("01", rownames(df)), "%d %b %Y"))

#plot
dygraph(dfTs)
库(预测)

f在进一步研究由
预测(模型)
生成的列表后,我注意到实际值和点预测作为
ts
对象给出,并且上下限与
动态图
Holtwiners示例的数组格式相同。我创建了一个函数,用于创建绘制所需的数组,假设
forecast\u obj感谢您的回答。事实上,我找到了一个适合我的解决方案。我要把它寄出去。
> class(f)
[1] "forecast"
> str(f)
List of 10 <truncated>
> predict(unemp.mod, n.ahead = 5, prediction.interval = TRUE)
$pred
          Apr      May      Jun      Jul      Aug
2017 4.528274 4.515263 4.493887 4.479992 4.463073

$se
           Apr       May       Jun       Jul       Aug
2017 0.1880140 0.2660260 0.3420974 0.4241788 0.5117221
library(forecast)
f <- forecast(ldeaths)

#use summary to get the model fit by forecast package
df <- summary(f)

#convert into a Time-Series class
dfTs <- xts(df, as.Date(paste("01", rownames(df)), "%d %b %Y"))

#plot
dygraph(dfTs)
gen_array <- function(forecast_obj){

  actuals <- forecast_obj$x
  lower <- forecast_obj$lower[,2]
  upper <- forecast_obj$upper[,2]
  point_forecast <- forecast_obj$mean

  cbind(actuals, lower, upper, point_forecast)
}
dygraph(ts_array, main = graph_title) %>% 
      dyRangeSelector() %>% 
      dyRangeSelector(height = 40,
                      dateWindow = c("2011-04-01", "2019-4-01")) %>%
      dySeries(name = "actuals", label = "actual") %>%
      dySeries(c("lower","point_forecast","upper"), label = "Predicted") %>%
      dyLegend(show = "always", hideOnMouseOut = FALSE) %>%
      dyHighlight(highlightCircleSize = 5,
                  highlightSeriesOpts = list(strokeWidth = 2)) %>%
      dyOptions(axisLineColor = "navy", gridLineColor = "grey")