Interactive Playground

Upload CSV

                                    

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');