四分位数
解説/アルゴリズム
データを昇順にソートした後、4 等分する位置、つまり 25%、50%、75%の位置にある値を四分位数と呼ぶ。
特に 25%の位置の値を第1四分位数(Q1)、50%の位置の値を第2四分位数(Q2)、75%の位置の値を第3四分位数(Q3)と呼ぶ。
function median(data: number[], start: number, end: number): number {
  const i = (start + end) / 2;
  const l = Math.floor(i);
  const u = Math.ceil(i);
  const value = (data[l] + data[u]) / 2;
  return value;
}
function calcQuartile(data: number[]) {
  data.sort((a, b) => a - b);
  const last = data.length - 1;
  const i = last / 2;
  let l = Math.floor(i);
  let u = Math.ceil(i);
  if (l === u) {
    l--;
    u++;
  }
  const q1 = median(data, 0, l);
  const q2 = median(data, l, u);
  const q3 = median(data, u, last);
  return { q1, q2, q3 };
}
四分位範囲
四分位数の Q3 から Q1 を引いた値を四分位範囲と呼ぶ。
const range = q3 - q1;
四分位偏差
四分位範囲の半分の値を四分位偏差と呼ぶ。
const div = range / 2;