みさご解体新書

中央値

解説/アルゴリズム

データの値を昇順、あるいは降順にソートして並べたとき、ちょうど中央の位置にくる値のことを中央値(メディアン)と呼ぶ。

データの個数が偶数の場合は、中央に 2 つの値が並ぶが、その場合は 2 つの値の平均を中央値として考える。

const data = [0, 6, 10, 2, 3, 5, 10, 9, 5, 6, 3, 2, 4, 5, 7, 1, 3, 4, 7, 3];
data.sort((a, b) => a - b);

let median: number;
if (data.length % 2 === 0) {
  const mid = data.length / 2 - 1;
  median = (data[mid] + data[mid + 1]) / 2;
} else {
  const mid = Math.floor(data.length / 2);
  median = data[mid];
}

// 4.5
console.log(median);

平均値との比較

const data = [0, 6, 10, 20, 30];
// 平均値 = 13.2
// 中央値 = 10

const data = [0, 6, 10, 20, 100];
// 平均値 = 27.2
// 中央値 = 10

データの中で極端に離れた値のことを外れ値といい、平均の計算ではこのような値があると大きく影響を受ける。

それに比べて中央値の計算では、ソートを行ったデータの中央の値を選ぶため、外れ値があっても直接影響を受けない。