Skip to main content

z_scores

Function z_scores 

Source
pub fn z_scores(data: &[f64]) -> StatsResult<Vec<f64>>
Expand description

Calculate z-scores for all values in a dataset

Examples found in repository?
examples/basic_usage.rs (line 39)
3fn main() {
4    println!("=== Statify Statistics Library Demo ===\n");
5
6    // Basic descriptive statistics
7    let data = vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0];
8    
9    println!("Dataset: {:?}\n", data);
10    println!("Descriptive Statistics:");
11    println!("  Mean: {:.2}", data.mean().unwrap());
12    println!("  Median: {:.2}", data.median().unwrap());
13    println!("  Std Dev: {:.2}", data.std_dev().unwrap());
14    println!("  Variance: {:.2}", data.variance().unwrap());
15    println!("  Min: {:.2}", data.min().unwrap());
16    println!("  Max: {:.2}", data.max().unwrap());
17    println!("  Range: {:.2}", data.range().unwrap());
18    println!("  Sum: {:.2}", data.sum().unwrap());
19
20    // Percentiles and quartiles
21    println!("\nPercentiles:");
22    println!("  25th percentile (Q1): {:.2}", data.quartile_1().unwrap());
23    println!("  50th percentile (Median): {:.2}", data.percentile(50.0).unwrap());
24    println!("  75th percentile (Q3): {:.2}", data.quartile_3().unwrap());
25    println!("  IQR: {:.2}", data.iqr().unwrap());
26
27    // Correlation and covariance
28    let x = vec![1.0, 2.0, 3.0, 4.0, 5.0];
29    let y = vec![2.0, 4.0, 6.0, 8.0, 10.0];
30    
31    println!("\nCorrelation Analysis:");
32    println!("  X: {:?}", x);
33    println!("  Y: {:?}", y);
34    println!("  Correlation: {:.4}", correlation(&x, &y).unwrap());
35    println!("  Covariance: {:.4}", covariance(&x, &y).unwrap());
36
37    // Z-scores
38    let sample = vec![10.0, 20.0, 30.0, 40.0, 50.0];
39    let z_vals = z_scores(&sample).unwrap();
40    
41    println!("\nZ-Scores:");
42    println!("  Data: {:?}", sample);
43    println!("  Z-scores: {:?}", z_vals.iter().map(|&x| format!("{:.2}", x)).collect::<Vec<_>>());
44
45    // Real-world example: test scores
46    let test_scores = vec![
47        85.0, 92.0, 78.0, 95.0, 88.0, 76.0, 89.0, 94.0, 81.0, 87.0,
48    ];
49    
50    println!("\n=== Real-World Example: Test Scores ===");
51    println!("Scores: {:?}", test_scores);
52    println!("  Average Score: {:.2}", test_scores.mean().unwrap());
53    println!("  Median Score: {:.2}", test_scores.median().unwrap());
54    println!("  Std Deviation: {:.2}", test_scores.std_dev().unwrap());
55    println!("  Lowest Score: {:.2}", test_scores.min().unwrap());
56    println!("  Highest Score: {:.2}", test_scores.max().unwrap());
57    println!("  Score Range: {:.2}", test_scores.range().unwrap());
58}