CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-simple-statistics

A JavaScript implementation of descriptive, regression, and inference statistics

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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

docs

array-operations.md

combinatorics.md

data-manipulation.md

descriptive-statistics.md

distributions.md

index.md

machine-learning.md

math-utilities.md

quantiles.md

regression.md

testing.md

tile.json