Skip to main content

Crate so_tsa

Crate so_tsa 

Source
Expand description

Time Series Analysis (TSA) module for StatOxide

This crate provides comprehensive time series analysis tools, including:

  1. Core Data Structures: TimeSeries with datetime indexing
  2. Stationarity Tests: ADF, KPSS, PP tests
  3. ARIMA Models: AR, MA, ARMA, ARIMA, SARIMA
  4. GARCH Models: ARCH, GARCH for volatility modeling
  5. State Space Models: Kalman filter, structural time series
  6. Decomposition: Seasonal-Trend decomposition (STL), moving averages
  7. Forecasting: Point forecasts, prediction intervals
  8. Diagnostics: Residual analysis, model selection criteria

§Example Usage

use so_tsa::{TimeSeries, ARIMA, GARCH, GARCHDistribution};
use ndarray::Array1;

// Create a simple time series with enough data for ARIMA
let values = Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0]);
let timestamps: Vec<i64> = (0..values.len() as i64).collect();
let ts = TimeSeries::new("series", timestamps, values, None).unwrap();

// Fit ARIMA(0,0,0) model (white noise with constant)
let arima = ARIMA::builder(0, 0, 0)
    .with_constant(true)
    .max_iter(200)
    .tol(1e-4)
    .fit(&ts).unwrap();

// Fit GARCH(1,1) model  
let garch = GARCH::builder(1, 1)
    .distribution(GARCHDistribution::Normal)
    .max_iter(200)
    .tol(1e-4)
    .fit(&ts).unwrap();

§References

  • Box, G. E. P., Jenkins, G. M., Reinsel, G. C., & Ljung, G. M. (2015). Time Series Analysis.
  • Hyndman, R. J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice.
  • R’s forecast package and statsmodels’ tsa module.

Re-exports§

pub use arima::ARIMA;
pub use arima::ARIMAResults;
pub use arima::SARIMABuilder;
pub use arima::SARIMAOrder;
pub use decomposition::DecompositionExt;
pub use decomposition::DecompositionMethod;
pub use decomposition::DecompositionResults;
pub use decomposition::HodrickPrescottFilter;
pub use decomposition::MovingAverageDecomposition;
pub use decomposition::STLDecomposition;
pub use decomposition::X12ARIMA;
pub use forecast::ForecastMetrics;
pub use forecast::IntervalMethod;
pub use forecast::PredictionInterval;
pub use forecast::PredictionIntervals;
pub use forecast::TimeSeriesCV;
pub use garch::ARCH;
pub use garch::GARCH;
pub use garch::GARCHDistribution;
pub use garch::GARCHOrder;
pub use garch::GARCHResults;
pub use results::ModelComparison;
pub use results::ResidualDiagnostics;
pub use results::TSAResults;
pub use statespace::KalmanFilter;
pub use statespace::StateSpaceModel;
pub use stationarity::ADFTest;
pub use stationarity::KPSSTest;
pub use stationarity::PPTest;
pub use stationarity::StationarityTest;
pub use timeseries::TimeSeries;
pub use utils::acf;
pub use utils::box_cox;
pub use utils::box_cox_lambda;
pub use utils::ccf;
pub use utils::detrend_poly;
pub use utils::diebold_mariano;
pub use utils::ewma;
pub use utils::forecast_errors;
pub use utils::information_criteria;
pub use utils::pacf;
pub use utils::periodogram;
pub use utils::rolling_statistic;
pub use utils::seasonal_dummies;
pub use utils::spectrum;

Modules§

arima
ARIMA (AutoRegressive Integrated Moving Average) models
decomposition
Time series decomposition methods
forecast
Forecasting evaluation and prediction intervals
garch
GARCH (Generalized Autoregressive Conditional Heteroskedasticity) models
prelude
results
Unified result structures for time series analysis
statespace
State space models and Kalman filter
stationarity
Stationarity tests for time series
timeseries
Time series data structure with datetime indexing
utils
Utility functions for time series analysis