JavaScript | 偏差の二乗を計算して返す関数

JavaScript JavaScript
スポンサーリンク

では「偏差の二乗を計算して返す関数」を作ってみましょう。
これは 分散や標準偏差 を求めるための第一歩になります。


目標

  • 配列の平均値を求める
  • 各要素の「偏差(要素 − 平均値)」を計算する
  • その偏差を二乗して新しい配列に入れる

✅ 模範解答(for文バージョン)

function getSquaredDeviations(arr) {
  if (arr.length === 0) return [];

  // 平均値を計算
  let total = 0;
  for (let i = 0; i < arr.length; i++) {
    total += arr[i];
  }
  const average = total / arr.length;

  // 偏差の二乗を計算
  const squaredDevs = [];
  for (let i = 0; i < arr.length; i++) {
    const deviation = arr[i] - average;
    squaredDevs.push(deviation ** 2); // 偏差の二乗
  }

  return squaredDevs;
}

// 実行例
console.log(getSquaredDeviations([3, 7, 2, 9, 5]));
// 平均は 5.2 → [4.84, 3.24, 10.24, 14.44, 0.04]
JavaScript

✅ 模範解答(for…ofバージョン)

function getSquaredDeviations(arr) {
  if (arr.length === 0) return [];

  const total = arr.reduce((sum, num) => sum + num, 0);
  const average = total / arr.length;

  const squaredDevs = [];
  for (const num of arr) {
    const deviation = num - average;
    squaredDevs.push(deviation ** 2);
  }

  return squaredDevs;
}

console.log(getSquaredDeviations([10, 20, 30, 40]));
// 平均は25 → [225, 25, 25, 225]
JavaScript

✅ 模範解答(forEachバージョン)

function getSquaredDeviations(arr) {
  if (arr.length === 0) return [];

  let total = 0;
  arr.forEach(num => total += num);
  const average = total / arr.length;

  const squaredDevs = [];
  arr.forEach(num => {
    const deviation = num - average;
    squaredDevs.push(deviation ** 2);
  });

  return squaredDevs;
}

console.log(getSquaredDeviations([4, 6, 8]));
// 平均は6 → [4, 0, 4]
JavaScript

💡 解説

  • 偏差の二乗は「分散」を求めるために使う。
  • 分散 = 偏差の二乗の平均値。
  • 標準偏差 = 分散の平方根。
  • 偏差を二乗することで「プラスとマイナスが打ち消し合わない」ようにしている。

🔥 発展練習

  • 偏差の二乗の「平均」を返す関数を作る(=分散)
  • さらに平方根を取って「標準偏差」を返す関数を作る

タイトルとURLをコピーしました