みさご解体新書

四分位数

解説/アルゴリズム

データを昇順にソートした後、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;