Deviation, Absolute Deviation, and Squared Deviation
Install and import#
npm install fintech-algorithmsimport { deviationAbsoluteDeviationAndSquaredDeviation } from "fintech-algorithms/foundations/dispersion-shape-and-robust-statistics/deviation-absolute-deviation-and-squared-deviation";Signature#
deviationAbsoluteDeviationAndSquaredDeviation(input)Centres a numeric series on its arithmetic mean and returns the three per-observation distance forms built from that centring: signed, absolute, and squared.
Parameters#
| Name | Type | Notes |
|---|---|---|
input | { values: number[] } | The observations to centre, under the key values. Entries are coerced with Number and must all be finite. |
Returns#
{ center: number; deviations: number[]; absoluteDeviations: number[]; squaredDeviations: number[] }
center is the arithmetic mean; the three arrays hold value - center, its absolute value, and its square, each aligned to the caller's input order.
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
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]
}Call#
deviationAbsoluteDeviationAndSquaredDeviation(input)Returns#
object with 2 fields: center, deviations
{
"center": 3.6,
"deviations": [-2.6, -1.6, -1.6, 0.3999999999999999, 5.4]
}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#
- Measures of Scale — NIST/SEMATECH e-Handbook
- Skewness and Kurtosis — NIST/SEMATECH e-Handbook
- Historical-example decision