#time-series-analysis #statistics #statistics-analysis #data-analysis #forecasting #analysis

oxidiviner-math

Mathematical utilities for time series analysis, including transformations, metrics, and statistical functions

3 unstable releases

new 0.3.3 May 19, 2025
0.3.0 May 19, 2025
0.2.0 May 19, 2025

#2026 in Math

30 downloads per month
Used in 6 crates

MIT license

16KB
255 lines

OxiDiviner Math

Crates.io Documentation License: MIT

Mathematical utilities for time series analysis and statistical forecasting.

Overview

This crate provides essential mathematical functions, statistical tools, and metrics for time series analysis in the OxiDiviner ecosystem. It serves as a foundation for implementing various forecasting algorithms and data transformations.

Features

  • Data transformations (differencing, log transformations, scaling)
  • Statistical functions (autocorrelation, partial autocorrelation)
  • Forecasting accuracy metrics (MAE, MSE, RMSE, MAPE, etc.)
  • Time series stationarity tests
  • Numerical optimization utilities

Modules

  • transforms - Data transformation functions for time series preprocessing
  • statistics - Statistical functions for time series analysis
  • metrics - Performance and accuracy metrics for evaluating forecasts

Usage

Add this to your Cargo.toml:

[dependencies]
oxidiviner-math = "0.1.0"

Example

use oxidiviner_math::transforms::{difference, log_transform};
use oxidiviner_math::metrics::{mean_absolute_error, mean_squared_error};

fn main() {
    // Original time series data
    let data = vec![10.5, 11.2, 10.8, 11.5, 12.0, 12.5, 12.2, 12.8];
    
    // Apply transformations
    let log_data = log_transform(&data);
    let diff_data = difference(&data, 1);
    
    println!("Original data: {:?}", data);
    println!("Log-transformed: {:?}", log_data);
    println!("First difference: {:?}", diff_data);
    
    // Calculate forecast accuracy metrics
    let actual = vec![10.0, 11.0, 9.5, 10.5];
    let predicted = vec![9.8, 10.5, 9.7, 10.2];
    
    let mae = mean_absolute_error(&actual, &predicted);
    let mse = mean_squared_error(&actual, &predicted);
    
    println!("MAE: {:.4}, MSE: {:.4}", mae, mse);
}

License

Licensed under the MIT License. See LICENSE for details.

Dependencies

~7MB
~141K SLoC