#09 ふれてみよう高校数学 確率・統計

分散と標準偏差

なぜ「バラつき」を測るか

期待値(平均)だけでは分布の形を説明できません。たとえばこんな2つの投資を考えてみてください:

  • 投資A:毎年必ず10%のリターン
  • 投資B:1/2で+30%、1/2で-10%(期待値=10%)

どちらも期待値は同じ 10% ですが、リスクが全く違います。Aは安定して10%。Bは「当たれば30%、はずれれば-10%」という賭けに近い——同じ「平均」でも、全然違う話なのです。この「バラつき」を数値化するのが分散標準偏差です。


分散の定義

「各値が平均からどれくらい離れているか」——この「ズレの大きさ」を計算します。ズレは「プラスもマイナスもある」ので、そのまま足すとゼロになってしまいます。だから二乗してから平均します:

V[X]=E[(Xμ)2]=x(xμ)2P(X=x)V[X] = E\left[(X - \mu)^2\right] = \sum_x (x - \mu)^2 \cdot P(X=x)

ここで μ=E[X]\mu = E[X]。各値が平均からどれだけ離れているかの「二乗の平均」です。

計算に便利な別形式——「二乗の期待値」から「期待値の二乗」を引くだけ:

V[X]=E[X2](E[X])2V[X] = E[X^2] - (E[X])^2


標準偏差

分散は単位が「元の単位の二乗」になってしまうので、その平方根を取ったものが標準偏差(standard deviation)です。「お金の分散がお金の二乗になるのは直感的でない」——だから平方根を取って元の単位に戻します:

σ=V[X]\sigma = \sqrt{V[X]}

サイコロの場合:

E[X]=3.5E[X] = 3.5

E[X2]=12+22+32+42+52+626=91615.167E[X^2] = \frac{1^2 + 2^2 + 3^2 + 4^2 + 5^2 + 6^2}{6} = \frac{91}{6} \approx 15.167

V[X]=15.1673.52=15.16712.25=2.917V[X] = 15.167 - 3.5^2 = 15.167 - 12.25 = 2.917

σ=2.9171.708\sigma = \sqrt{2.917} \approx 1.708

「サイコロの目は平均3.5から大体1.7ほどずれる」という感覚です。


同じ平均・異なる分散のデモ

マウスを左右に動かすと分布の広がりが変わります。青い曲線(σが小さい)は細く高く、赤い曲線(σが大きい)は広く低く——「同じ平均でもバラつきは全然違う」を視覚的に確認できます。

同じ平均μ=0を持つ2つの分布:マウスを左右に動かしてσを変化させ、広がりの違いを確認
function gaussian(x, mu, sigma) {
var exponent = -((x - mu) * (x - mu)) / (2 * sigma * sigma);
return Math.exp(exponent) / (sigma * Math.sqrt(2 * Math.PI));
}

function loop() {
ctx.clearRect(0, 0, W, H);

var sigma1 = 0.5 + (mx / W) * 2.5;
var sigma2 = sigma1 * 2.2;
var mu = 0;

var cx = W / 2, cy = 200;
var scaleX = 60, scaleY = 240;

var range = 5;
var steps = 200;
var dx = range * 2 / steps;

function drawCurve(sigma, color) {
  ctx.strokeStyle = color;
  ctx.lineWidth = 2.5;
  ctx.beginPath();
  for (var i = 0; i <= steps; i++) {
    var xv = -range + i * dx;
    var yv = gaussian(xv, mu, sigma);
    var px = cx + xv * scaleX;
    var py = cy - yv * scaleY;
    if (i === 0) ctx.moveTo(px, py);
    else ctx.lineTo(px, py);
  }
  ctx.stroke();
}

function fillUnder(sigma, color, lo, hi) {
  ctx.fillStyle = color;
  ctx.beginPath();
  ctx.moveTo(cx + lo * scaleX, cy);
  for (var i = 0; i <= steps; i++) {
    var xv = -range + i * dx;
    if (xv < lo || xv > hi) continue;
    var yv = gaussian(xv, mu, sigma);
    var px = cx + xv * scaleX;
    var py = cy - yv * scaleY;
    ctx.lineTo(px, py);
  }
  ctx.lineTo(cx + hi * scaleX, cy);
  ctx.closePath();
  ctx.fill();
}

fillUnder(sigma2, '#ef444422', -sigma2, sigma2);
fillUnder(sigma1, '#3b82f622', -sigma1, sigma1);

drawCurve(sigma2, '#ef4444');
drawCurve(sigma1, '#3b82f6');

ctx.strokeStyle = '#475569';
ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(30, cy);
ctx.lineTo(W - 30, cy);
ctx.stroke();

function drawSigmaMarker(sigma, color, yOff) {
  ctx.strokeStyle = color;
  ctx.lineWidth = 1.5;
  ctx.setLineDash([4, 3]);
  ctx.beginPath();
  ctx.moveTo(cx - sigma * scaleX, cy - 10);
  ctx.lineTo(cx - sigma * scaleX, cy + 10);
  ctx.stroke();
  ctx.beginPath();
  ctx.moveTo(cx + sigma * scaleX, cy - 10);
  ctx.lineTo(cx + sigma * scaleX, cy + 10);
  ctx.stroke();
  ctx.setLineDash([]);
  ctx.fillStyle = color;
  ctx.font = '11px monospace';
  ctx.textAlign = 'center';
  ctx.fillText('-σ', cx - sigma * scaleX, cy + 22 + yOff);
  ctx.fillText('+σ', cx + sigma * scaleX, cy + 22 + yOff);
}

drawSigmaMarker(sigma1, '#3b82f6', 0);
drawSigmaMarker(sigma2, '#ef4444', 14);

ctx.fillStyle = '#3b82f6';
ctx.font = 'bold 13px sans-serif';
ctx.textAlign = 'left';
ctx.fillText('σ₁ = ' + sigma1.toFixed(2) + '  (狭い)', 20, 30);
ctx.fillStyle = '#ef4444';
ctx.fillText('σ₂ = ' + sigma2.toFixed(2) + '  (広い)', 20, 50);

ctx.fillStyle = '#94a3b8';
ctx.font = '12px sans-serif';
ctx.textAlign = 'center';
ctx.fillText('両者の平均 μ = 0 は同じ', W / 2, 328);

requestAnimationFrame(loop);
}
loop();

分散の性質

V[aX+b]=a2V[X]V[aX + b] = a^2\,V[X]

V[X+Y]=V[X]+V[Y](X,Yが独立な場合)V[X + Y] = V[X] + V[Y] \quad \text{(X,Yが独立な場合)}

注意: 定数 bb は分散に影響しない——「平行移動してもバラつきは変わらない」のは当然です。どれだけ全体を上下にずらしても、相互のズレは変わりません。定数倍 aa二乗で効く——「2倍にスケールアップすると、バラつきも2倍になる」のに分散は4倍になります(単位の二乗だから)。


2乗平均の式を使った計算

V[X]=E[X2](E[X])2V[X] = E[X^2] - (E[X])^2 の使い方——「全ての(x-μ)²を計算するよりも楽」な計算手順です。

例: 確率変数 XX の確率分布:

xx0123
PP1/41/41/41/4

E[X]=0+14+24+34=32E[X] = 0 + \frac{1}{4} + \frac{2}{4} + \frac{3}{4} = \frac{3}{2}

E[X2]=0+14+44+94=144=72E[X^2] = 0 + \frac{1}{4} + \frac{4}{4} + \frac{9}{4} = \frac{14}{4} = \frac{7}{2}

V[X]=72(32)2=7294=54V[X] = \frac{7}{2} - \left(\frac{3}{2}\right)^2 = \frac{7}{2} - \frac{9}{4} = \frac{5}{4}

σ=5/4=521.118\sigma = \sqrt{5/4} = \frac{\sqrt{5}}{2} \approx 1.118


標準偏差のイメージ

正規分布(次回学ぶ)では、標準偏差が「どのくらいの範囲に人が集まるか」の目安になります:

  • μ±1σ\mu \pm 1\sigma の範囲に全体の 68% が入る
  • μ±2σ\mu \pm 2\sigma の範囲に 95% が入る
  • μ±3σ\mu \pm 3\sigma の範囲に 99.7% が入る

「身長の平均170cm、標準偏差6cm」なら、「164〜176cmに全体の68%が入る」——標準偏差は「典型的なズレの大きさ」と考えると分かりやすいです。


まとめ

  • 分散 V[X]=E[(Xμ)2]=E[X2](E[X])2V[X] = E[(X-\mu)^2] = E[X^2] - (E[X])^2:バラつきの二乗平均——「平均からどれだけ離れるか」
  • 標準偏差 σ=V[X]\sigma = \sqrt{V[X]}:元の単位でのバラつきの大きさ——「典型的なズレ幅」
  • V[aX+b]=a2V[X]V[aX+b] = a^2 V[X]——定数は無効、倍率は二乗で効く
  • 独立な場合 V[X+Y]=V[X]+V[Y]V[X+Y] = V[X] + V[Y]——「独立なバラつきは足し算できる」
  • 同じ平均でもσが大きいほどリスクが高い——「投資のリスク評価」にも使われる考え方

次回は二項分布を詳しく見て、そのパラメータ np と np(1-p) を確認します。