interquartile_range.js

import quantile from "./quantile.js";

/**
 * [四分位距](http://en.wikipedia.org/wiki/Interquartile_range)是
 * 一种衡量统计离散度的指标,用于描述分布的分散、扩展或集中程度。
 * 它通过计算第三四分位数与第一四分位数之间的差值得出。
 *
 * @param {Array<number>} x 包含一个或多个数字的样本
 * @returns {number} 四分位距:下四分位数和上四分位数之间的跨度,
 * 分别为0.25和0.75
 * @example
 * interquartileRange([0, 1, 2, 3]); // => 2
 */
function interquartileRange(x) {
    // 四分位距是上四分位数(0.75)与下四分位数(0.25)之间的跨度
    const q1 = quantile(x, 0.75);
    const q2 = quantile(x, 0.25);

    if (typeof q1 === "number" && typeof q2 === "number") {
        return q1 - q2;
    }
}

export default interquartileRange;