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
modelunemp.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")