Crate normality

Crate normality 

Source
Expand description

§normality

A Rust crate for assessing the normality of a data sample. It provides several common statistical tests to determine if a set of data is likely drawn from a normal distribution.

All test implementations are generic and can work with f32 or f64 data types. The implementations are ported from well-established algorithms found in popular R packages.

§Implemented Tests

§Installation

Either run cargo add normality or add the crate to your Cargo.toml:

[dependencies]
normality = "1.0.0"

§Example Usage

use normality::{shapiro_wilk, Error};

fn main() -> Result<(), Error> {
    // Sample data that is likely from a normal distribution
    let data = vec![-1.1, -0.8, -0.5, -0.2, 0.0, 0.2, 0.5, 0.8, 1.1, 1.3];

    // Perform the Shapiro-Wilk test
    let result = shapiro_wilk(&data)?;

    println!("Shapiro-Wilk Test Results:");
    println!("  W-statistic: {:.4}", result.statistic);
    println!("  p-value: {:.4}", result.p_value);

    // Interpretation: A high p-value (e.g., > 0.05) suggests that the data
    // does not significantly deviate from a normal distribution.
    if result.p_value > 0.05 {
        println!("Conclusion: The sample is likely from a normal distribution.");
    } else {
        println!("Conclusion: The sample is not likely from a normal distribution.");
    }

    Ok(())
}

§Accuracy

The accuracy of the implemented tests has been verified against their R equivalents. Running the integration tests for this crate requires a local installation of R and for the Rscript executable to be available in the system’s PATH.

§License

This project is licensed under the MIT License.

Structs§

Computation
A generic data structure to hold the results of a normality test.

Enums§

Error
Represents errors that can occur during a normality test computation.

Traits§

Float
A convenience trait combining bounds frequently used for floating-point computations.

Functions§

anderson_darling
Performs the Anderson-Darling test for normality.
dagostino_k_squared
Performs D’Agostino’s K-squared test for skewness to assess normality.
jarque_bera
Performs the Jarque-Bera test for normality.
lilliefors
Performs the Lilliefors (Kolmogorov-Smirnov) test for normality.
pearson_chi_squared
Performs the Pearson chi-squared test for normality.
shapiro_wilk
Performs the Shapiro-Wilk test for normality on a given sample of data.