Module: aprender::time_series

Public module of the aprender-core crate.

Source

crates/aprender-core/src/time_series.rs or directory.

Example

use aprender::time_series::ARIMA;
// See `cargo doc -p aprender-core --open` for full API reference.

Module summary

aprender::time_series exposes classical statistical time-series forecasting. Today it ships the ARIMA(p, d, q) model — autoregressive integrated moving average — fitted by maximum likelihood, with both AR and MA coefficients exposed for diagnostics. The API takes Vector<f64> rather than f32 because maximum-likelihood estimation of long-horizon AR processes is numerically sensitive and benefits from double precision.

Key types

TypeDescription
ARIMAARIMA(p, d, q) model. fit takes a Vector<f64> of observations; forecast(n) returns the next n predictions.

Diagnostic accessors: ar_coefficients, ma_coefficients, intercept, order.

Usage patterns

Pattern 1: Fit and forecast an AR(1) series

use aprender::time_series::ARIMA;
use aprender::primitives::Vector;

// Synthetic AR(1) data with phi=0.7
let mut series = vec![0.0_f64];
let mut x = 0.0;
for _ in 0..50 {
    x = 0.7 * x + 0.5;  // deterministic for the doc example
    series.push(x);
}
let data = Vector::from_vec(series);

// ARIMA(1, 0, 0) = pure AR(1)
let mut model = ARIMA::new(1, 0, 0);
model.fit(&data).expect("AR(1) fit");

let forecast = model.forecast(5).expect("5-step forecast");
println!("forecast: {:?}", forecast.as_slice());

Pattern 2: Inspect ARIMA(1, 1, 1) coefficients

use aprender::time_series::ARIMA;
use aprender::primitives::Vector;

let observations = Vector::from_vec((0..40).map(|i| (i as f64).sin()).collect());

let mut model = ARIMA::new(1, 1, 1);
model.fit(&observations).expect("ARIMA(1,1,1) fit");

let (p, d, q) = model.order();
println!("order: ({}, {}, {})", p, d, q);
if let Some(ar) = model.ar_coefficients() {
    println!("AR: {:?}", ar.as_slice());
}
if let Some(ma) = model.ma_coefficients() {
    println!("MA: {:?}", ma.as_slice());
}

See also

  • bayesian — for posterior forecasting with conjugate priors
  • stats — supporting statistical primitives (mean, variance, autocorrelation)
  • metrics — RMSE / MAE for evaluating forecast accuracy

Full API

Run cargo doc -p aprender-core --open for the rendered rustdoc, or browse docs.rs/aprender for the published version.