Interactive Playground
Installation
import Statik from './statik.js';
Basic Statistics
mean(arr)
Calculates the arithmetic mean of an array.
Statik.mean([1, 2, 3, 4, 5]); // Returns 3
median(arr)
Calculates the median value of an array.
Statik.median([1, 2, 3, 4, 5]); // Returns 3
mode(arr)
Finds the mode(s) of an array.
Statik.mode([1, 2, 2, 3]); // Returns [2]
geometricMean(arr)
Calculates the geometric mean of an array.
Statik.geometricMean([1, 2, 3, 4, 5]); // Returns 2.605171084697352
harmonicMean(arr)
Calculates the harmonic mean of an array.
Statik.harmonicMean([1, 2, 3, 4, 5]); // Returns 2.1897810218978103
Advanced Statistics
variance(arr, sample = false)
Calculates the variance of an array. Set sample=true for sample variance.
Statik.variance([1, 2, 3, 4, 5]); // Population variance
Statik.variance([1, 2, 3, 4, 5], true); // Sample variance
stddev(arr, sample = false)
Calculates the standard deviation. Set sample=true for sample standard deviation.
Statik.stddev([1, 2, 3, 4, 5]); // Population std dev
quartiles(arr)
Returns an object with Q1, Q2 (median), and Q3 values.
Statik.quartiles([1, 2, 3, 4, 5]); // Returns {q1: 1.5, q2: 3, q3: 4.5}
iqr(arr)
Calculates the interquartile range (IQR).
Statik.iqr([1, 2, 3, 4, 5]); // Returns 3
outliers(arr)
Finds the outliers in an array.
Statik.outliers([1, 2, 3, 4, 5, 100]); // Returns [100]
skewness(arr)
Measures the asymmetry of the distribution.
Statik.skewness([1, 2, 3, 4, 10]); // Returns positive value (right-skewed)
kurtosis(arr)
Measures the tailedness of the distribution.
Statik.kurtosis([1, 2, 3, 4, 5]); // Returns 1.7
correlation(arr1, arr2)
Calculates the sample correlation coefficient between two arrays.
Statik.correlation([1, 2, 3], [2, 4, 6]); // Returns 1 (perfect correlation)
Visualization
histogram(values, options, element)
Creates a histogram chart.
Statik.histogram([1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 10, 11, 12], {
label: 'Distribution'
}, 'chart');
boxplot(values, options, element)
Creates a boxplot chart.
Statik.boxplot([1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 10, 11, 12], {
label: 'Distribution'
}, 'chart');
scatter(arr1, arr2, options, element)
Creates a scatter plot chart.
Statik.scatter([1, 2, 3], [2, 4, 6], {
label: 'Correlation'
}, 'chart');