では「分散を計算する関数」を作ってみましょう。
これは 偏差の二乗の平均 を求めることで、データのばらつきを数値化する練習です。
目標
- 配列の平均値を求める
- 各要素の偏差(二乗)を計算する
- その二乗の平均値を返す(=分散)
✅ 模範解答(for文バージョン)
function getVariance(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;
}
// 分散 = 偏差の二乗の平均
return squaredTotal / arr.length;
}
// 実行例
console.log(getVariance([3, 7, 2, 9, 5]));
// 平均は5.2 → 分散は6.16
JavaScript✅ 模範解答(for…ofバージョン)
function getVariance(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;
}
return squaredTotal / arr.length;
}
console.log(getVariance([10, 20, 30, 40]));
// 平均は25 → 分散は125
JavaScript✅ 模範解答(forEachバージョン)
function getVariance(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;
});
return squaredTotal / arr.length;
}
console.log(getVariance([4, 6, 8]));
// 平均は6 → 分散は2.67
JavaScript💡 解説
- 分散 = 偏差の二乗の平均
- 値が平均からどれくらい離れているかを数値化できる。
- 分散が大きい → データのばらつきが大きい
- 分散が小さい → データが平均の近くに集まっている
🔥 発展練習
- 分散の平方根を計算して「標準偏差」を返す関数を作る
- 標準偏差を使って「平均 ± 標準偏差の範囲に何個のデータが入るか」を数える
