Example 19
intermediate
19
Tensors
Statistics

Statistical Analysis

Perform descriptive statistics and hypothesis testing. Analyze data distributions and test hypotheses. This example uses deepbox/ndarray, deepbox/stats and focuses on tensor; mean, median, std, variance, skewness, kurtosis, percentile, pearsonr, corrcoef.

Deepbox Modules Used

deepbox/ndarraydeepbox/stats

What You Will Learn

  • Use deepbox/ndarray for tensor.
  • Use deepbox/stats for mean, median, std, variance, skewness, kurtosis, percentile, pearsonr, corrcoef.
  • Perform descriptive statistics and hypothesis testing. Analyze data distributions and test hypotheses.

Source Files

index.ts
1/**2 * Example 19: Statistical Analysis3 *4 * Perform descriptive statistics and hypothesis testing.5 * Learn to analyze data distributions and test hypotheses.6 */78import { tensor } from "deepbox/ndarray";9import {10  corrcoef,11  kurtosis,12  mean,13  median,14  pearsonr,15  percentile,16  skewness,17  std,18  variance,19} from "deepbox/stats";2021console.log("=== Statistical Analysis ===\n");2223// Sample data24const data = tensor([23, 25, 28, 30, 32, 35, 38, 40, 42, 45, 48, 50, 55, 60, 65]);2526console.log("Dataset:");27console.log(`${data.toString()}\n`);2829// Descriptive statistics30console.log("Descriptive Statistics:");31console.log("-".repeat(50));3233const meanVal = Number(mean(data).data[0]);34const medianVal = Number(median(data).data[0]);35const stdVal = Number(std(data).data[0]);36const varVal = Number(variance(data).data[0]);37const skewVal = Number(skewness(data).data[0]);38const kurtVal = Number(kurtosis(data).data[0]);3940console.log(`Mean:     ${meanVal.toFixed(2)}`);41console.log(`Median:   ${medianVal.toFixed(2)}`);42console.log(`Std Dev:  ${stdVal.toFixed(2)}`);43console.log(`Variance: ${varVal.toFixed(2)}`);44console.log(`Skewness: ${skewVal.toFixed(4)}`);45console.log(`Kurtosis: ${kurtVal.toFixed(4)}\n`);4647// Percentiles48console.log("Percentiles:");49console.log("-".repeat(50));5051const p25 = Number(percentile(data, 25).data[0]);52const p50 = Number(percentile(data, 50).data[0]);53const p75 = Number(percentile(data, 75).data[0]);5455console.log(`25th percentile (Q1): ${p25.toFixed(2)}`);56console.log(`50th percentile (Q2): ${p50.toFixed(2)}`);57console.log(`75th percentile (Q3): ${p75.toFixed(2)}\n`);5859// Correlation analysis60console.log("Correlation Analysis:");61console.log("-".repeat(50));6263const x = tensor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);64const y = tensor([2.1, 4.2, 5.8, 8.1, 10.3, 11.9, 14.2, 16.1, 17.8, 20.2]);6566const correlationResult = pearsonr(x, y);67const correlation = Array.isArray(correlationResult) ? correlationResult[0] : correlationResult;68console.log(`Pearson correlation: ${Number(correlation).toFixed(4)}`);6970const corrMatrix = corrcoef(71  tensor([72    [1, 2, 3],73    [4, 5, 6],74    [7, 8, 9],75  ])76);77console.log("\nCorrelation Matrix:");78console.log(corrMatrix.toString());7980console.log("\n✓ Statistical analysis complete!");81

Console Output

$ npx tsx 19-statistics/index.ts
Console output showing descriptive statistics, percentiles, Pearson correlation, and correlation matrix