arima

Crates.ioarima
lib.rsarima
version0.3.0
sourcesrc
created_at2019-10-19 14:53:22.313107
updated_at2023-11-22 15:06:20.330513
descriptionARIMA time series modeling for Rust.
homepagehttps://github.com/krfricke/arima
repositoryhttps://github.com/krfricke/arima
max_upload_size
id173978
size85,589
Kai Fricke (krfricke)

documentation

README

Crate Docs License Build Status

ARIMA

Rust crate for ARIMA model coefficient estimation and simulation.

Example

extern crate rand;
use rand::prelude::*;
use rand_distr::{Distribution, Normal};
use arima::{estimate, sim};

fn main() {
    // initialize RNG with seed
    let mut rng: StdRng = SeedableRng::from_seed([100; 32]);

    // our noise should be normally distributed
    let normal = Normal::new(10.0, 2.0).unwrap();

    // simulate time series
    let ts = sim::arima_sim(
        1000,                   // number of samples
        Some(&[0.7, 0.2]),      // AR parameters
        Some(&[0.4]),                   // MA parameters
        0,                      // difference parameter
        &|mut rng| { normal.sample(&mut rng) }, // noise fn
        &mut rng                // RNG
    ).unwrap();

    // estimate AR parameters
    let coef = estimate::fit(&ts, 2, 0, 1).unwrap();

    println!("Estimated parameters: {:?}", coef);
    // Estimated parameters: [14.904840907703845, 0.7524268545022731, 0.14075584488434256, 0.35966423499627603]
}

Features

  • Full ARIMA model parameter estimation
  • Auto-correlation/covariance calculation
  • Partial auto-correlation calculation
  • AR parameter estimation
  • Variance estimation
  • ARIMA time series simulation

Roadmap

  • Order estimation

License

This crate is licensed under the Apache-2.0 license.

Commit count: 58

cargo fmt