fintech-algorithms
Using a coding agent? Give it the skill: npx skills add IslamBaraka90/Fintech-Algorithms-Library What it does →

Histograms and Empirical Distribution Functions

Install and import#

bash
npm install fintech-algorithms
ts
import { histogramsAndEmpiricalDistributionFunctions } from "fintech-algorithms/foundations/location-ranking-and-exploratory-summaries/histograms-and-empirical-distribution-functions";

Signature#

histogramsAndEmpiricalDistributionFunctions(input)

Splits the observed span into equal-width bins and counts the observations in each, alongside the empirical distribution function evaluated at every sorted observation.

Parameters#

NameTypeNotes
input{ values: number[]; bins: number }values holds the observations and bins the number of equal-width buckets to spread them across. The bins span minimum to maximum; when every observation is identical the width falls back to 1 and everything lands in the last bin.
bins: integer, at least 1

Returns#

{ binCounts: number[]; binWidth: number; ecdf: { x: number; p: number }[] }

binCounts has one entry per bin in ascending order, binWidth is the common width used, and ecdf pairs each sorted observation x with the cumulative share p of observations at or below its position.

Errors#

  • When input is null, an array, or not an object — throws TypeError
  • When values is missing, is not an array, or is empty — throws RangeError
  • When any entry of values does not coerce to a finite number — throws RangeError
  • When bins is not an integer or is less than 1 — throws RangeError

Complexity: time O(n log n), space O(n).

Worked example#

verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.

Input#

input
{
  "values": [1, 2, 2, 4, 9],
  "weights": [1, 1, 2, 1, 1],
  "trimProportion": 0.2,
  "bins": 4
}

Call#

histogramsAndEmpiricalDistributionFunctions(input)

Returns#

object with 2 fields: binCounts, binWidth

{
  "binCounts": [3, 1, 0, 1],
  "binWidth": 2
}

Diagrams#

Histograms and Empirical Distribution Functions — article hero
Histograms and Empirical Distribution Functions — calculation ledger
Histograms and Empirical Distribution Functions — comparison map
Histograms and Empirical Distribution Functions — concept anatomy
Histograms and Empirical Distribution Functions — mistake contrast
Histograms and Empirical Distribution Functions — scenario map

How it works#

This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.

Read the article →

References#

  • Histogram
  • Empirical Distribution Function
  • Location, Scale, and Shape
  • Historical-example decision

The rest of the Location, Ranking, and Exploratory Summaries family#