Learn R Programming

NVAR: Nonlinear Vector Autoregression Models

Estimate nonlinear vector autoregression models (also known as the next generation reservoir computing) for nonlinear dynamic systems. The algorithm was described by Gauthier et al. (2021) doi:10.1038/s41467-021-25801-2.

Installation

You can install the development version of NVAR from GitHub with:

# install.packages("devtools")
devtools::install_github("Sciurus365/NVAR")

Example

This is an example for the Lorenz model.

library(NVAR)

testdata <- nonlinearTseries::lorenz()
testdata <- tibble::as_tibble(testdata)
t1 <- NVAR(data = testdata, vars = c("x", "y", "z"), s = 2, k = 2, p = 2, alpha = 1e-3)
t1_sim <- sim_NVAR(t1, length = 5000)


realdata <- nonlinearTseries::lorenz(time = seq(0, 100, by = .01)) %>% tibble::as_tibble()

library(ggplot2)
ggplot(realdata) +
  geom_line(aes(x = 1:10001, y = x), color = "red", alpha = 0.4) +
  geom_line(aes(x = 1:10001, y = x), data = t1_sim, color = "blue", alpha = 0.4) +
  geom_vline(xintercept = 5000) +
  theme_bw() +
  xlim(c(4900, 8000)) +
  labs(x = "time", y = "x")

# Red line: real data.
# Blue line: simulated data with the NVAR.
# Black vertical line: when the simulation starts.

Copy Link

Version

Install

install.packages('NVAR')

Monthly Downloads

172

Version

0.1.0

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Jingmeng Cui

Last Published

January 18th, 2024

Functions in NVAR (0.1.0)

sim_NVAR

Time series simulation with an NVAR model
NVAR

Fit a nonlinear vector autoregression model
%>%

Pipe operator