Learn R Programming

echos

The echos package provides a comprehensive set of functions and methods for modeling and forecasting univariate time series using Echo State Networks (ESNs). It offers two alternative approaches:

  • Base R interface: Functions for modeling and forecasting time series using numeric vectors, allowing for straightforward integration with existing R workflows.
  • Tidy interface: A seamless integration with the fable framework based on tsibble, enabling tidy time series forecasting and model evaluation. This interface leverages the fabletools package, providing a consistent and streamlined workflow for model development, evaluation, and visualization.

The package features a lightweight implementation that enables fast and fully automatic model training and forecasting using ESNs. You can quickly and easily build accurate ESN models without requiring extensive hyperparameter tuning or manual configuration.

Installation

You can install the stable version from CRAN:

install.packages("echos")

You can install the development version from GitHub:

# install.packages("devtools")
devtools::install_github("ahaeusser/echos")

Base R

library(echos)

# Forecast horizon
n_ahead <- 12 # forecast horizon
# Number of observations
n_obs <- length(AirPassengers)
# Number of observations for training
n_train <- n_obs - n_ahead

# Prepare train and test data
xtrain <- AirPassengers[(1:n_train)]
xtest <- AirPassengers[((n_train+1):n_obs)]

# Train and forecast ESN model
xmodel <- train_esn(y = xtrain)
xfcst <- forecast_esn(xmodel, n_ahead = n_ahead)

# Plot result
plot(xfcst, test = xtest)

Tidy R

library(echos)
library(tidyverse)
library(tsibble)
library(fable)

# Prepare train data
train_frame <- m4_data %>%
  filter(series %in% c("M21655", "M2717"))

# Train and forecast ESN model
train_frame %>%
  model(
    "ESN" = ESN(value),
    "ARIMA" = ARIMA(value)
    ) %>%
  forecast(h = 18) %>%
  autoplot(train_frame, level = NULL)

References

  • Häußer, A. (2026). Echo State Networks for Time Series Forecasting: Hyperparameter Sweep and Benchmarking. arXiv preprint arXiv:2602.03912. https://arxiv.org/abs/2602.03912
  • 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 (2nd ed.), pp. 659–686. Springer.
  • Lukosevicius, M., & Jaeger, H. (2009). Reservoir computing approaches to recurrent neural network training. Computer Science Review, 3(3), 127–149.

Copy Link

Version

Install

install.packages('echos')

Monthly Downloads

198

Version

1.0.3

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Alexander Häußer

Last Published

February 22nd, 2026

Functions in echos (1.0.3)

print.esn

Print model specification of the trained ESN model
report.ESN

Provide a detailed summary of the trained ESN model
tidy.ESN

Estimated coefficients
summary.esn

Provide a detailed summary of the trained ESN model
train_esn

Train an Echo State Network
summary.tune_esn

Provide a summary of the hyperparameter tuning
m4_data

M4 dataset
synthetic_data

Synthetic data
plot.forecast_esn

Plot forecasts of a trained ESN model
plot.tune_esn

Plot forecasts from a tuned ESN object
tune_esn

Tune hyperparameters of an Echo State Network
is.tune_esn

Checks if object is of class "tune_esn"
forecast_esn

Forecast an Echo State Network
forecast.ESN

Forecast an Echo State Network
ESN

Train an Echo State Network
is.esn

Checks if object is of class "esn"
fitted.ESN

Extract fitted values from a trained ESN
is.forecast_esn

Checks if object is of class "forecast_esn"
glance.ESN

Summary of trained models during random search
filter_esn

Filter ESN models
reservoir

Return the reservoir from a trained ESN as tibble
run_reservoir

Run reservoir
model_sum.ESN

Model specification of a trained ESN model
residuals.ESN

Extract residuals from a trained ESN
plot.esn

Plot internal states of a trained ESN model