Histograms and Empirical Distribution Functions
Install and import#
npm install fintech-algorithmsimport { 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#
| Name | Type | Notes |
|---|---|---|
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
inputis null, an array, or not an object — throws TypeError - When
valuesis missing, is not an array, or is empty — throws RangeError - When any entry of
valuesdoes not coerce to a finite number — throws RangeError - When
binsis 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#
{
"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#
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.
References#
- Histogram
- Empirical Distribution Function
- Location, Scale, and Shape
- Historical-example decision