or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

array-operations.mdcombinatorics.mddata-manipulation.mddescriptive-statistics.mddistributions.mdindex.mdmachine-learning.mdmath-utilities.mdquantiles.mdregression.mdtesting.md
tile.json

tessl/npm-simple-statistics

A JavaScript implementation of descriptive, regression, and inference statistics

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/simple-statistics@6.1.x

To install, run

npx @tessl/cli install tessl/npm-simple-statistics@6.1.0

index.mddocs/

Simple Statistics

A comprehensive JavaScript implementation of descriptive, regression, and inference statistics designed for data analysis and statistical computing.

Package Information

  • Package Name: simple-statistics
  • Package Type: npm
  • Language: JavaScript with TypeScript definitions
  • Installation: npm install simple-statistics
  • Version: 6.1.1
  • Dependencies: None (zero dependencies)

Core Imports

Import specific functions (recommended):

import { mean, median, standardDeviation, linearRegression } from "simple-statistics";

Import entire library:

import * as ss from "simple-statistics";

CommonJS:

const { mean, median, standardDeviation, linearRegression } = require("simple-statistics");

Basic Usage

import { mean, standardDeviation, linearRegression } from "simple-statistics";

// Descriptive statistics
const data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const average = mean(data); // 5.5
const stdDev = standardDeviation(data); // 2.87...

// Linear regression
const xyData = [[1, 1], [2, 2], [3, 1.3], [4, 3.75], [5, 2.25]];
const regression = linearRegression(xyData); // {m: 0.425, b: 0.785}

Architecture

The library provides over 95 statistical functions organized into logical functional areas:

  • Descriptive Statistics: Central tendency, variability, and distribution shape measures
  • Regression Analysis: Linear regression and correlation analysis
  • Probability Distributions: Normal, binomial, Poisson, and other distributions
  • Statistical Testing: Hypothesis tests and goodness-of-fit tests
  • Machine Learning: Bayesian and perceptron classifiers
  • Data Manipulation: Sampling, shuffling, and array operations
  • Mathematical Utilities: Root finding, gamma functions, and numerical utilities

Capabilities

Descriptive Statistics

Calculate measures of central tendency, spread, and distribution shape.

function mean(values: number[]): number;
function median(values: number[]): number;
function mode(values: number[]): number;
function standardDeviation(values: number[]): number;
function variance(values: number[]): number;
function sampleVariance(values: number[]): number;
function sampleSkewness(values: number[]): number;
function sampleKurtosis(values: number[]): number;

Descriptive Statistics

Regression Analysis

Perform linear regression analysis and correlation calculations.

interface RegressionResult {
  m: number; // slope
  b: number; // y-intercept  
}

function linearRegression(data: Array<[number, number]>): RegressionResult;
function linearRegressionLine(mb: RegressionResult): (x: number) => number;
function rSquared(data: Array<[number, number]>, func: (x: number) => number): number;
function sampleCorrelation(x: number[], y: number[]): number;
function sampleCovariance(x: number[], y: number[]): number;

Regression Analysis

Probability Distributions

Work with various probability distributions and normal distribution functions.

function bernoulliDistribution(p: number): number[];
function binomialDistribution(trials: number, probability: number): number[];
function poissonDistribution(lambda: number): number[];
function zScore(x: number, mean: number, standardDeviation: number): number;
function cumulativeStdNormalProbability(z: number): number;
function errorFunction(x: number): number;
function inverseErrorFunction(x: number): number;
function probit(p: number): number;
function standardNormalTable: number[];
function chiSquaredDistributionTable: number[];

Probability Distributions

Statistical Testing

Perform hypothesis tests and goodness-of-fit analysis.

function tTest(sample: number[], expectedValue: number): number;
function tTestTwoSample(sampleX: number[], sampleY: number[], difference?: number): number | null;
function chiSquaredGoodnessOfFit(data: number[], distributionType: Function, significance: number): boolean;
function permutationTest(sampleX: number[], sampleY: number[], testType?: string, k?: number): number;

Statistical Testing

Machine Learning

Classification algorithms for supervised learning tasks.

class BayesianClassifier {
  totalCount: number;
  data: Record<string, any>;
  
  train(item: Record<string, any>, category: string): void;
  score(item: Record<string, any>): Record<string, number>;
}

class PerceptronModel {
  weights: number[];
  bias: number;
  
  predict(features: number[]): number;
  train(features: number[], label: number): PerceptronModel;
}

function ckmeans<T>(data: T[], nClusters: number): T[][];
function kernelDensityEstimation(X: number[], kernel?: string | Function, bandwidthMethod?: string | number): (x: number) => number;

Machine Learning

Quantiles and Ranges

Calculate percentiles, quartiles, and range statistics.

function quantile(values: number[], p: number): number;
function quantile(values: number[], p: number[]): number[];
function quantileRank(values: number[], value: number): number;
function interquartileRange(values: number[]): number;
function medianAbsoluteDeviation(values: number[]): number;

Quantiles and Ranges

Data Manipulation

Sampling, shuffling, and array manipulation utilities.

function sample<T>(population: T[], n: number, randomSource?: () => number): T[];
function sampleWithReplacement<T>(population: T[], n: number, randomSource?: () => number): T[];
function shuffle<T>(array: T[], randomSource?: () => number): T[];
function shuffleInPlace<T>(array: T[], randomSource?: () => number): T[];
function chunk<T>(array: T[], chunkSize: number): T[][];
function uniqueCountSorted(values: number[]): Array<{value: number, count: number}>;
function sumNthPowerDeviations(values: number[], n: number): number;
function equalIntervalBreaks(values: number[], nClasses: number): number[];

Data Manipulation

Combinatorics

Functions for combinations and permutations.

function combinations<T>(x: T[], k: number): T[][];
function combinationsReplacement<T>(x: T[], k: number): T[][];
function permutationsHeap<T>(x: T[]): T[][];

Combinatorics

Mathematical Utilities

Root finding, special functions, and numerical utilities.

function bisect(func: (x: any) => number, start: number, end: number, maxIterations: number, errorTolerance: number): number;
function factorial(n: number): number;
function gamma(n: number): number;
function gammaln(n: number): number;
function sign(x: number): number;
function numericSort(array: number[]): number[];
function quickselect<T>(array: T[], k: number, compare?: (a: T, b: T) => number): T;

const epsilon: number;

Mathematical Utilities

Array Operations

Basic array operations for finding extremes and products.

function min(values: number[]): number;
function max(values: number[]): number;
function extent(values: number[]): [number, number];
function minSorted(values: number[]): number;
function maxSorted(values: number[]): number;
function extentSorted(values: number[]): [number, number];
function sum(values: number[]): number;
function sumSimple(values: number[]): number;
function product(values: number[]): number;

Array Operations