A JavaScript implementation of descriptive, regression, and inference statistics
—
Functions for calculating measures of central tendency, variability, and distribution shape.
import {
mean, median, mode,
standardDeviation, variance,
sampleVariance, sampleStandardDeviation,
sampleSkewness, sampleKurtosis,
rootMeanSquare,
geometricMean, harmonicMean
} from "simple-statistics";function mean(values: number[]): number;Calculates the arithmetic mean (average) of an array of numbers.
Parameters:
values: number[] - Array of numeric valuesReturns: number - The arithmetic mean
Throws: Error if array is empty
import { mean, average } from "simple-statistics";
const data = [1, 2, 3, 4, 5];
const result = mean(data); // 3
// Alternative using alias
const result2 = average(data); // 3 - same functionfunction median(values: number[]): number;Finds the middle value in a dataset. Automatically sorts the data.
Parameters:
values: number[] - Array of numeric valuesReturns: number - The median value
import { median } from "simple-statistics";
const data = [1, 3, 2, 5, 4];
const result = median(data); // 3function medianSorted(values: number[]): number;Optimized median calculation for pre-sorted arrays.
Parameters:
values: number[] - Pre-sorted array of numeric valuesReturns: number - The median value
import { medianSorted } from "simple-statistics";
const sortedData = [1, 2, 3, 4, 5];
const result = medianSorted(sortedData); // 3function mode(values: number[]): number;Finds the most frequently occurring value in a dataset.
Parameters:
values: number[] - Array of numeric valuesReturns: number - The mode (most frequent value)
import { mode } from "simple-statistics";
const data = [1, 2, 2, 3, 4, 2];
const result = mode(data); // 2function modeFast(values: number[]): number;Fast mode calculation using optimized algorithm.
function modeSorted(values: number[]): number;Mode calculation for pre-sorted arrays.
function geometricMean(values: number[]): number;Calculates the geometric mean - the nth root of the product of n numbers.
Parameters:
values: number[] - Array of positive numeric valuesReturns: number - The geometric mean
import { geometricMean } from "simple-statistics";
const data = [1, 2, 4, 8];
const result = geometricMean(data); // 2.828...function harmonicMean(values: number[]): number;Calculates the harmonic mean - useful for rates and ratios.
Parameters:
values: number[] - Array of positive numeric valuesReturns: number - The harmonic mean
import { harmonicMean } from "simple-statistics";
const rates = [10, 20, 30];
const result = harmonicMean(rates); // 16.36...function variance(values: number[]): number;Calculates the population variance - average of squared deviations from the mean.
Parameters:
values: number[] - Array of numeric valuesReturns: number - The population variance
import { variance } from "simple-statistics";
const data = [1, 2, 3, 4, 5];
const result = variance(data); // 2function standardDeviation(values: number[]): number;Calculates the population standard deviation - square root of variance.
Parameters:
values: number[] - Array of numeric valuesReturns: number - The population standard deviation
import { standardDeviation } from "simple-statistics";
const data = [1, 2, 3, 4, 5];
const result = standardDeviation(data); // 1.414...function sampleVariance(values: number[]): number;Calculates the sample variance using n-1 denominator (Bessel's correction).
Parameters:
values: number[] - Array of numeric valuesReturns: number - The sample variance
import { sampleVariance } from "simple-statistics";
const sample = [1, 2, 3, 4, 5];
const result = sampleVariance(sample); // 2.5function sampleStandardDeviation(values: number[]): number;Calculates the sample standard deviation using n-1 denominator.
Parameters:
values: number[] - Array of numeric valuesReturns: number - The sample standard deviation
import { sampleStandardDeviation } from "simple-statistics";
const sample = [1, 2, 3, 4, 5];
const result = sampleStandardDeviation(sample); // 1.58...function rootMeanSquare(values: number[]): number;Calculates the root mean square (quadratic mean).
Parameters:
values: number[] - Array of numeric valuesReturns: number - The root mean square
import { rootMeanSquare } from "simple-statistics";
const data = [1, 2, 3, 4, 5];
const result = rootMeanSquare(data); // 3.31...function sampleSkewness(values: number[]): number;Measures the asymmetry of the probability distribution. Positive skew indicates a tail extending toward more positive values.
Parameters:
values: number[] - Array of numeric valuesReturns: number - The sample skewness
import { sampleSkewness } from "simple-statistics";
const data = [1, 2, 2, 3, 4, 7, 9];
const result = sampleSkewness(data); // positive value (right-skewed)function sampleKurtosis(values: number[]): number;Measures the "tailedness" of the probability distribution relative to a normal distribution.
Parameters:
values: number[] - Array of numeric valuesReturns: number - The sample kurtosis
import { sampleKurtosis } from "simple-statistics";
const data = [1, 2, 3, 4, 5];
const result = sampleKurtosis(data); // measure of tail weightfunction addToMean(currentMean: number, n: number, newValue: number): number;Updates the mean when adding a new value to the dataset.
function subtractFromMean(currentMean: number, n: number, value: number): number;Updates the mean when removing a value from the dataset.
function combineMeans(mean1: number, n1: number, mean2: number, n2: number): number;Combines means from two separate samples.
function combineVariances(variance1: number, mean1: number, n1: number, variance2: number, mean2: number, n2: number): number;Combines variances from two separate samples.
Install with Tessl CLI
npx tessl i tessl/npm-simple-statistics