では「標準偏差を計算する関数」を作ってみましょう。
標準偏差は 分散の平方根 で、データのばらつきを直感的に理解しやすい指標です。
目標
- 配列の平均値を求める
- 偏差の二乗の平均(=分散)を求める
- 分散の平方根を返す(=標準偏差)
✅ 模範解答(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💡 解説
- 分散は「ばらつきの大きさ」を数値化したもの。
- 標準偏差は「分散の平方根」で、元のデータと同じ単位になるため直感的に理解しやすい。
- 標準偏差が小さい → データが平均の近くに集まっている
- 標準偏差が大きい → データが広く散らばっている
🔥 発展練習
- 標準偏差を使って「平均 ± 標準偏差の範囲に入るデータの数」を数える関数を作る
- 実際のデータ(例: テストの点数)を使って、平均・分散・標準偏差をまとめて計算する関数を作る
