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

Mixture Distributions, Multimodality, and Fat Tails

Install and import#

bash
npm install fintech-algorithms
ts
import { mixtureDistributionsMultimodalityAndFatTails } from "fintech-algorithms/foundations/probability-distributions-and-simulation-basics/mixture-distributions-multimodality-and-fat-tails";

Signature#

mixtureDistributionsMultimodalityAndFatTails(input)

Evaluates a weighted mixture of normal components at input.x, which is how a single series can show more than one mode and fatter tails than any of its parts.

Parameters#

NameTypeNotes
inputD00InputOne record carrying x (the point to evaluate) and components, a list where each entry has weight, mean and sd. p and sigma are validated by the family entry point before dispatching.
components: non-empty; every weight nonnegative, weights summing to one within 1e-12, every sd strictly positive · sigma: strictly positive · p: between 0 and 1 inclusive

Returns#

D00Output

An object with mixturePdf (the weighted sum of the component densities at x), componentCount and weightSum.

Errors#

  • When p is missing or outside 0 to 1 — this check runs for every topic in the family — throws RangeError
  • When sigma is zero or negative — this check runs for every topic from A05 onward — throws RangeError
  • When components is empty, a weight is negative, the weights miss one by more than 1e-12, or a component sd is zero or negative — throws RangeError

Complexity: time O(m), space O(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
{
  "values": [0.2, 0.5, 0.7, 1, 1.4],
  "x": 1,
  "p": 0.3,
  "n": 5,
  "k": 2,
  "lambda": 2,
  "seed": 42,
  "sampleCount": 8,
  "mu": 0,
  "sigma": 1,
  "df": 5,
  "shape": 2,
  "scale": 1.5,
  "components": [
    {
      "weight": 0.7,
      "mean": 0,
      "sd": 1
    },
    {
      "weight": 0.3,
      "mean": 3,
      "sd": 0.8
    }
  ]
}

Call#

mixtureDistributionsMultimodalityAndFatTails(input)

Returns#

object with 2 fields: mixturePdf, componentCount

{
  "mixturePdf": 0.17595261984848856,
  "componentCount": 2
}

Diagrams#

Mixture Distributions, Multimodality, and Fat Tails — article hero
Mixture Distributions, Multimodality, and Fat Tails — calculation ledger
Mixture Distributions, Multimodality, and Fat Tails — concept anatomy
Mixture Distributions, Multimodality, and Fat Tails — failure boundary
Mixture Distributions, Multimodality, and Fat Tails — method map
Mixture Distributions, Multimodality, and Fat Tails — 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 Probability Distributions and Simulation Basics family#