{"id":32199566,"url":"https://github.com/ahaeusser/echos","last_synced_at":"2026-02-19T09:01:57.364Z","repository":{"id":49584245,"uuid":"248709319","full_name":"ahaeusser/echos","owner":"ahaeusser","description":"Echo State Networks for Time Series Forecasting","archived":false,"fork":false,"pushed_at":"2026-01-26T12:29:45.000Z","size":30925,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-26T23:58:27.692Z","etag":null,"topics":["echo-state-networks","fable","fabletools","forecast","forecasting","recurrent-neural-networks","reservoir-computing","ridge-regression","time-series"],"latest_commit_sha":null,"homepage":"https://ahaeusser.github.io/echos/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahaeusser.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-20T08:53:11.000Z","updated_at":"2026-01-26T12:29:49.000Z","dependencies_parsed_at":"2024-07-15T21:16:23.581Z","dependency_job_id":"102694ab-984e-407e-9b70-a5baa98b9cf0","html_url":"https://github.com/ahaeusser/echos","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ahaeusser/echos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahaeusser%2Fechos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahaeusser%2Fechos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahaeusser%2Fechos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahaeusser%2Fechos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahaeusser","download_url":"https://codeload.github.com/ahaeusser/echos/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahaeusser%2Fechos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29609524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T06:47:36.664Z","status":"ssl_error","status_checked_at":"2026-02-19T06:45:47.551Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["echo-state-networks","fable","fabletools","forecast","forecasting","recurrent-neural-networks","reservoir-computing","ridge-regression","time-series"],"created_at":"2025-10-22T03:19:28.424Z","updated_at":"2026-02-19T09:01:57.352Z","avatar_url":"https://github.com/ahaeusser.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  dev = \"svg\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"100%\"\n)\n```\n\n\n# echos \u003cimg src=\"man/figures/logo.png\" align=\"right\" height=\"139\" alt=\"\" /\u003e\n\n\u003c!-- badges: start --\u003e\n[![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/echos)](https://cran.r-project.org/package=echos)\n[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable)\n[![Licence](https://img.shields.io/badge/licence-GPL--3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html)\n[![Codecov test coverage](https://codecov.io/gh/ahaeusser/echos/branch/master/graph/badge.svg)](https://app.codecov.io/gh/ahaeusser/echos?branch=master)\n[![R-CMD-check](https://github.com/ahaeusser/echos/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/ahaeusser/echos/actions/workflows/R-CMD-check.yaml)\n![](http://cranlogs.r-pkg.org/badges/echos?color=brightgreen)\n![](https://cranlogs.r-pkg.org/badges/grand-total/echos?color=brightgreen)\n\u003c!-- badges: end --\u003e\n\n\nThe `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:\n\n* **Base R interface:** Functions for modeling and forecasting time series using `numeric` vectors, allowing for straightforward integration with existing R workflows.\n* **Tidy interface:** A seamless integration with the [`fable`](https://github.com/tidyverts/fable) framework based on [`tsibble`](https://github.com/tidyverts/tsibble), enabling tidy time series forecasting and model evaluation. This interface leverages the [`fabletools`](https://github.com/tidyverts/fabletools) package, providing a consistent and streamlined workflow for model development, evaluation, and visualization.\n\nThe 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.\n\n\n## Installation\n\nYou can install the **stable** version from [CRAN](https://cran.r-project.org/package=echos):\n\n``` r\ninstall.packages(\"echos\")\n```\n\nYou can install the **development** version from [GitHub](https://github.com/):\n\n``` r\n# install.packages(\"devtools\")\ndevtools::install_github(\"ahaeusser/echos\")\n```\n\n## Base R\n\n```{r base, message = FALSE, warning = FALSE, fig.alt = \"Plot forecast and test data\"}\nlibrary(echos)\n\n# Forecast horizon\nn_ahead \u003c- 12 # forecast horizon\n# Number of observations\nn_obs \u003c- length(AirPassengers)\n# Number of observations for training\nn_train \u003c- n_obs - n_ahead\n\n# Prepare train and test data\nxtrain \u003c- AirPassengers[(1:n_train)]\nxtest \u003c- AirPassengers[((n_train+1):n_obs)]\n\n# Train and forecast ESN model\nxmodel \u003c- train_esn(y = xtrain)\nxfcst \u003c- forecast_esn(xmodel, n_ahead = n_ahead)\n\n# Plot result\nplot(xfcst, test = xtest)\n```\n\n\n## Tidy R\n\n```{r tidy, message = FALSE, warning = FALSE, fig.alt = \"Plot forecast and train data\"}\nlibrary(echos)\nlibrary(tidyverse)\nlibrary(tsibble)\nlibrary(fable)\n\n# Prepare train data\ntrain_frame \u003c- m4_data %\u003e%\n  filter(series %in% c(\"M21655\", \"M2717\"))\n\n# Train and forecast ESN model\ntrain_frame %\u003e%\n  model(\n    \"ESN\" = ESN(value),\n    \"ARIMA\" = ARIMA(value)\n    ) %\u003e%\n  forecast(h = 18) %\u003e%\n  autoplot(train_frame, level = NULL)\n```\n\n## References\n\n- Häußer, A. (2026). *Echo State Networks for Time Series Forecasting: Hyperparameter Sweep and Benchmarking.* arXiv preprint arXiv:2602.03912. \u003chttps://arxiv.org/abs/2602.03912\u003e\n- 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.\n- Jaeger, H. (2002). *Tutorial on training recurrent neural networks, covering BPPT, RTRL, EKF and the \"echo state network\" approach.*\n- Lukosevicius, M. (2012). *A practical guide to applying echo state networks.* In *Neural Networks: Tricks of the Trade* (2nd ed.), pp. 659–686. Springer.\n- Lukosevicius, M., \u0026 Jaeger, H. (2009). *Reservoir computing approaches to recurrent neural network training.* *Computer Science Review*, 3(3), 127–149.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahaeusser%2Fechos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahaeusser%2Fechos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahaeusser%2Fechos/lists"}