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

Kurtosis, Excess Kurtosis, and Tail Weight

Install and import#

bash
npm install fintech-algorithms
ts
import { kurtosisExcessKurtosisAndTailWeight } from "fintech-algorithms/foundations/dispersion-shape-and-robust-statistics/kurtosis-excess-kurtosis-and-tail-weight";

Signature#

kurtosisExcessKurtosisAndTailWeight(input)

Divides the fourth central moment by the square of the second, subtracts 3 to give excess kurtosis, and says whether the tails are heavier or lighter than a normal distribution's.

Parameters#

NameTypeNotes
input{ values: number[] }The observations whose tail weight is being measured, under the key values. Both moments are population moments, dividing by n rather than applying a small-sample correction.
values: at least two observations, and not all identical

Returns#

{ kurtosis: number; excessKurtosis: number; tailWeightVsNormal: 'heavier' | 'lighter' }

kurtosis is m4 / m2 ** 2, excessKurtosis is that less 3, and tailWeightVsNormal is heavier when kurtosis exceeds 3 and lighter otherwise, including at exactly 3.

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 values holds fewer than two observations, so the sample divisor n - 1 would be zero — throws RangeError
  • When the second central moment is zero because every observation is identical — 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]
}

Call#

kurtosisExcessKurtosisAndTailWeight(input)

Returns#

object with 2 fields: kurtosis, excessKurtosis

{
  "kurtosis": 2.6779621076444537,
  "excessKurtosis": -0.32203789235554625
}

Diagrams#

Kurtosis, Excess Kurtosis, and Tail Weight — article hero
Kurtosis, Excess Kurtosis, and Tail Weight — calculation ledger
Kurtosis, Excess Kurtosis, and Tail Weight — concept anatomy
Kurtosis, Excess Kurtosis, and Tail Weight — failure boundary
Kurtosis, Excess Kurtosis, and Tail Weight — method map
Kurtosis, Excess Kurtosis, and Tail Weight — 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 Dispersion, Shape, and Robust Statistics family#