In this post, we use some fairly new technology of time series analysis namely neural nets and interactive charting tools.
INTERACTIVE GRAPH The time series results should be presented interactively in order to highlight certain features.
# Handle outliers library(forecast) myts <- tsclean(myts) # Set up a NN mynnetar <- nnetar(myts) # Forecast 3 years nnetforecast <- forecast(mynnetar, h = 36, PI = TRUE) # PI create the prediction intervals for the forecast library(ggplot2) # Data we need for the graph data <- nnetforecast$x # raw data lower <- nnetforecast$lower[,2] # confidence intervals lower bound upper <- nnetforecast$upper[,2] # confidence intervals upper bound pforecast <- nnetforecast$mean # th element mean mydata <- cbind(data, lower, upper, pforecast) # put everything in one dataframe library(dygraphs) dygraph(mydata, main = "Campsite Restaurant") %>% # get data and the caption dyRangeSelector() %>% # the zoom tool dySeries(name = "data", label = "Revenue Data") %>% # add time series which are store in: data <- nnetforecast$x dySeries(c("lower","pforecast","upper"), label = "Revenue Forecast") %>% # add the forecast and CI dyLegend(show = "always", hideOnMouseOut = FALSE) %>% # add the legend (time series + forecast) dyAxis("y", label = "Monthly Revenue USD") %>% # label the y axis dyHighlight(highlightCircleSize = 5, # specify what happen when the mouse in hovering the graph highlightSeriesOpts = list(strokeWidth = 2)) %>% dyOptions(axisLineColor = "navy", gridLineColor = "grey") %>% # set axis and fridline colors dyAnnotation("2010-8-1", text = "CF", tooltip = "Camp Festival", attachAtBottom = T) # add annotation
The Interactive graph above consists in two distinct fractions. The longer line at the beginning is the original data. The second part which is 36 months long gets activated as soon as we hover it, and this is the forecasting with prediction intervals. At the bottom we have an interactive range selector where we can specify the level of zoom in and out in the timeline. To lear more go to Neural Network Autoregressive Model NNAR