JavaScript | 分散を計算する関数

JavaScript JavaScript
スポンサーリンク

では「標準偏差を計算する関数」を作ってみましょう。
標準偏差は 分散の平方根 で、データのばらつきを直感的に理解しやすい指標です。


目標

  • 配列の平均値を求める
  • 偏差の二乗の平均(=分散)を求める
  • 分散の平方根を返す(=標準偏差)

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

function getStandardDeviation(arr) {
  if (arr.length === 0) return null; // 空配列ならnull

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

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

  // 分散
  const variance = squaredTotal / arr.length;

  // 標準偏差 = 分散の平方根
  return Math.sqrt(variance);
}

// 実行例
console.log(getStandardDeviation([3, 7, 2, 9, 5]));
// 平均は5.2 → 標準偏差は約2.48
JavaScript

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

function getStandardDeviation(arr) {
  if (arr.length === 0) return null;

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

  let squaredTotal = 0;
  for (const num of arr) {
    const deviation = num - average;
    squaredTotal += deviation ** 2;
  }

  const variance = squaredTotal / arr.length;
  return Math.sqrt(variance);
}

console.log(getStandardDeviation([10, 20, 30, 40]));
// 平均は25 → 標準偏差は約11.18
JavaScript

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

function getStandardDeviation(arr) {
  if (arr.length === 0) return null;

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

  let squaredTotal = 0;
  arr.forEach(num => {
    const deviation = num - average;
    squaredTotal += deviation ** 2;
  });

  const variance = squaredTotal / arr.length;
  return Math.sqrt(variance);
}

console.log(getStandardDeviation([4, 6, 8]));
// 平均は6 → 標準偏差は約1.63
JavaScript

💡 解説

  • 分散は「ばらつきの大きさ」を数値化したもの。
  • 標準偏差は「分散の平方根」で、元のデータと同じ単位になるため直感的に理解しやすい。
  • 標準偏差が小さい → データが平均の近くに集まっている
  • 標準偏差が大きい → データが広く散らばっている

🔥 発展練習

  • 標準偏差を使って「平均 ± 標準偏差の範囲に入るデータの数」を数える関数を作る
  • 実際のデータ(例: テストの点数)を使って、平均・分散・標準偏差をまとめて計算する関数を作る

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