5 unstable releases
0.3.0 | Nov 22, 2023 |
---|---|
0.2.0 | Nov 5, 2019 |
0.1.2 | Oct 19, 2019 |
0.1.1 | Oct 19, 2019 |
0.1.0 | Oct 19, 2019 |
#1005 in Algorithms
78 downloads per month
Used in mcmc
35KB
493 lines
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.
Dependencies
~2–28MB
~362K SLoC