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

Law of Large Numbers

Install and import#

bash
npm install fintech-algorithms
ts
import { lawOfLargeNumbers } from "fintech-algorithms/foundations/sampling-estimation-and-statistical-inference/law-of-large-numbers";

Signature#

lawOfLargeNumbers(input)

Walks the running mean of input.sample one observation at a time and reports how far it has drifted from input.populationMean by the end.

Parameters#

NameTypeNotes
inputD00InputOne record. sample is the observation stream in the order it arrives, and populationMean is the value the running mean should be converging on. estimates and alpha are validated for the whole family before dispatch.
sample: non-empty list of finite numbers, at least two of them · estimates: non-empty list of finite numbers · alpha: strictly between 0 and 1

Returns#

D00Output

An object with cumulativeMeans (one running mean per observation), finalError (absolute gap between the last running mean and populationMean) and movesTowardTarget (true when the final gap is no wider than the gap after the first observation).

Errors#

  • When sample or estimates is missing, empty, or contains a non-finite number — both are parsed for every topic in the family, whether or not the topic uses them — throws RangeError
  • When sample holds fewer than two observations — throws RangeError
  • When alpha is not strictly between zero and one — throws RangeError

Complexity: time O(n^2 + m), space O(n + m).

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
{
  "sample": [2, 3, 4, 3, 4],
  "estimates": [3, 3.1, 3.2, 3.3, 3.4],
  "populationMean": 3.2,
  "alpha": 0.05,
  "mseBenchmark": 0.1,
  "nullMean": 3,
  "alternativeMean": 3.5,
  "practicalThreshold": 0.1,
  "comparisons": 5
}

Call#

lawOfLargeNumbers(input)

Returns#

object with 2 fields: cumulativeMeans, finalError

{
  "cumulativeMeans": [2, 2.5, 3, 3, 3.2],
  "finalError": 0
}

Diagrams#

Law of Large Numbers — article hero
Law of Large Numbers — calculation ledger
Law of Large Numbers — concept anatomy
Law of Large Numbers — failure boundary
Law of Large Numbers — method map
Law of Large Numbers — scenario contrast

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#

The rest of the Sampling, Estimation, and Statistical Inference family#