Skip to contents

Forecast an Echo State Network (ESN) from a trained model via recursive forecasting. Forecast intervals are generated by simulating future sample path based on a moving block bootstrap of the residuals and estimating the quantiles from the simulations.

Usage

forecast_esn(
  object,
  n_ahead = 18,
  levels = c(80, 95),
  n_sim = 100,
  n_seed = 42
)

Arguments

object

An object of class esn. The result of a call to train_esn().

n_ahead

Integer value. The number of periods for forecasting (i.e. forecast horizon).

levels

Integer vector. The levels of the forecast intervals, e.g., 80% and 95%.

n_sim

Integer value. The number of future sample path generated during simulation.

n_seed

Integer value. The seed for the random number generator (for reproducibility).

Value

A list containing:

  • point: Numeric vector containing the point forecasts.

  • interval: Numeric matrix containing the forecast intervals.

  • sim: Numeric matrix containing the simulated future sample path.

  • levels: Integer vector. The levels of the forecast intervals.

  • actual: Numeric vector containing the actual values.

  • fitted: Numeric vector containing the fitted values.

  • n_ahead: Integer value. The number of periods for forecasting (forecast horizon).

  • model_spec: Character value. The model specification as string.

References

  • Jaeger, H. (2001). The “echo state” approach to analysing and training recurrent neural networks with an erratum note. Bonn, Germany: German National Research Center for Information Technology GMD Technical Report, 148(34):13.

  • Jaeger, H. (2002). Tutorial on training recurrent neural networks, covering BPPT, RTRL, EKF and the "echo state network" approach.

  • Lukosevicius, M. (2012). A practical guide to applying echo state networks. In Neural Networks: Tricks of the Trade: Second Edition, pages 659–686. Springer.

  • Lukosevicius, M. and Jaeger, H. (2009). Reservoir computing approaches to recurrent neural network training. Computer Science Review, 3(3):127–149.

Examples

xdata <- as.numeric(AirPassengers)
xmodel <- train_esn(y = xdata)
xfcst <- forecast_esn(xmodel, n_ahead = 12)
plot(xfcst)