Sometimes it is useful to “backcast” a time series — that is, forecast in reverse time. Although there are no in-built R functions to do this, it is very easy to implement. Suppose
x is our time series and we want to backcast for $h$ periods. Here is some code that should work for most univariate time series. The example is non-seasonal, but the code will also work with seasonal data.
library(forecast) x <- WWWusage h <- 20 f <- frequency(x) # Reverse time revx <- ts(rev(x), frequency=f) # Forecast fc <- forecast(auto.arima(revx), h) plot(fc) # Reverse time again fc$mean <- ts(rev(fc$mean),end=tsp(x) - 1/f, frequency=f) fc$upper <- fc$upper[h:1,] fc$lower <- fc$lower[h:1,] fc$x <- x # Plot result plot(fc, xlim=c(tsp(x)-h/f, tsp(x)))
- The thief package for R: Temporal HIErarchical Forecasting
- Forecasting with long seasonal periods
- New in forecast 6.0
- Detecting seasonality
- TBATS with regressors