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/statsWhat 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!");81Console Output
$ npx tsx 19-statistics/index.ts
Console output showing descriptive statistics, percentiles, Pearson correlation, and correlation matrix