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

正規分布

正規分布とは

「日本人男性の身長を1000人測ってグラフにすると、どんな形になるでしょう?」——170cmあたりを頂点に、左右に対称な山型の曲線になります。これが正規分布(normal distribution、ガウス分布)です。身長だけでなく、体重・テストの点数・測定誤差など、自然界や社会のデータの多くがこの形に従います:

f(x)=1σ2πexp ⁣((xμ)22σ2)f(x) = \frac{1}{\sigma\sqrt{2\pi}}\,\exp\!\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)

  • μ\mu(ミュー):平均(分布の中心)——山の頂点の位置
  • σ\sigma(シグマ):標準偏差(分布の広がり)——山が広いか細いか
  • σ2\sigma^2:分散

なぜ重要か? 自然界や社会現象の多くの量(身長・体重・測定誤差・テストの点数など)が正規分布に従うこと、そして中心極限定理(第14回)によって、多くの統計的手法の基礎になっているからです。


正規分布の特徴

  1. 平均 μ\mu を中心に左右対称のベル曲線——「ベルカーブ」とも呼ばれます
  2. x±x \to \pm\infty で密度は 0 に近づく——「端っこは限りなくゼロに近づくが決してゼロにならない」
  3. 全面積 =1= 1——「全員の確率を足すと1」
  4. 68-95-99.7 ルール——最も実用的な性質

P(μσXμ+σ)0.6827P(\mu - \sigma \leq X \leq \mu + \sigma) \approx 0.6827 P(μ2σXμ+2σ)0.9545P(\mu - 2\sigma \leq X \leq \mu + 2\sigma) \approx 0.9545 P(μ3σXμ+3σ)0.9973P(\mu - 3\sigma \leq X \leq \mu + 3\sigma) \approx 0.9973


正規分布インタラクティブデモ

マウスを左右に動かすとσが変わります。σが小さいと山が細く高く(データが平均近くに集中)、σが大きいと山が広く低く(データが散らばっている)なる様子を確認してください。

正規分布 N(0,σ²):マウスを左右に動かして σ を変化させ、1σ/2σ/3σ 領域を確認
function gauss(x, mu, sigma) {
return Math.exp(-0.5 * ((x - mu) / sigma) * ((x - mu) / sigma)) / (sigma * Math.sqrt(2 * Math.PI));
}

function fillArea(mu, sigma, lo, hi, color) {
var cx = W / 2;
var scX = 40;
var scY = 280;
var baseY = 250;

ctx.fillStyle = color;
ctx.beginPath();
ctx.moveTo(cx + lo * scX, baseY);
var steps = 200;
for (var i = 0; i <= steps; i++) {
  var xv = lo + (hi - lo) * i / steps;
  var yv = gauss(xv, mu, sigma);
  ctx.lineTo(cx + xv * scX, baseY - yv * scY);
}
ctx.lineTo(cx + hi * scX, baseY);
ctx.closePath();
ctx.fill();
}

function drawCurve(mu, sigma, color) {
var cx = W / 2;
var scX = 40;
var scY = 280;
var baseY = 250;
var range = 4.5;
var steps = 300;

ctx.strokeStyle = color;
ctx.lineWidth = 2.5;
ctx.beginPath();
for (var i = 0; i <= steps; i++) {
  var xv = -range + (2 * range * i / steps);
  var yv = gauss(xv, mu, sigma);
  var px = cx + xv * scX;
  var py = baseY - yv * scY;
  if (i === 0) ctx.moveTo(px, py);
  else ctx.lineTo(px, py);
}
ctx.stroke();
}

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

var sigma = 0.3 + (mx / W) * 2.0;
var mu = 0;
var cx = W / 2;
var scX = 40;
var baseY = 250;

fillArea(mu, sigma, -3 * sigma, 3 * sigma, '#7c3aed22');
fillArea(mu, sigma, -2 * sigma, 2 * sigma, '#1d4ed844');
fillArea(mu, sigma, -sigma, sigma, '#1d4ed877');

drawCurve(mu, sigma, '#60a5fa');

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

var regions = [
  { mult: 1, color: '#3b82f6', pct: '68.3%' },
  { mult: 2, color: '#8b5cf6', pct: '95.5%' },
  { mult: 3, color: '#7c3aed', pct: '99.7%' }
];

for (var i = 0; i < regions.length; i++) {
  var r = regions[i];
  var xPos = sigma * r.mult;
  ctx.strokeStyle = r.color;
  ctx.lineWidth = 1;
  ctx.setLineDash([4, 3]);
  ctx.beginPath();
  ctx.moveTo(cx + xPos * scX, 30);
  ctx.lineTo(cx + xPos * scX, baseY);
  ctx.stroke();
  ctx.beginPath();
  ctx.moveTo(cx - xPos * scX, 30);
  ctx.lineTo(cx - xPos * scX, baseY);
  ctx.stroke();
  ctx.setLineDash([]);

  ctx.fillStyle = r.color;
  ctx.font = '11px monospace';
  ctx.textAlign = 'center';
  ctx.fillText('±' + r.mult + 'σ', cx + xPos * scX, baseY + 16);
  ctx.fillText('±' + r.mult + 'σ', cx - xPos * scX, baseY + 16);
}

ctx.fillStyle = '#e2e8f0';
ctx.font = 'bold 15px sans-serif';
ctx.textAlign = 'left';
ctx.fillText('μ = 0,  σ = ' + sigma.toFixed(2), 20, 28);

var legendY = 60;
var legendData = [
  { color: '#3b82f6aa', label: '±1σ = 68.3%' },
  { color: '#8b5cf6aa', label: '±2σ = 95.5%' },
  { color: '#7c3aed88', label: '±3σ = 99.7%' }
];
for (var j = 0; j < legendData.length; j++) {
  ctx.fillStyle = legendData[j].color;
  ctx.fillRect(20, legendY + j * 22, 16, 14);
  ctx.fillStyle = '#94a3b8';
  ctx.font = '12px sans-serif';
  ctx.fillText(legendData[j].label, 42, legendY + j * 22 + 11);
}

ctx.fillStyle = '#64748b';
ctx.font = '12px sans-serif';
ctx.textAlign = 'center';
ctx.fillText('← σ 小         σ 大 →', W / 2, 348);

requestAnimationFrame(loop);
}
loop();

標準正規分布と標準化

平均 0・標準偏差 1 の正規分布を標準正規分布 N(0,1)N(0, 1) といい、確率変数を ZZ で表します。

「身長170cmの人が”どのくらい平均的か”を知りたい」——絶対値だけでは比べられません。「標準偏差の何倍ズレているか」に変換することで、異なる分布どうしでも比較できます。これが標準化です:

Z=XμσZ = \frac{X - \mu}{\sigma}

なぜ標準化するか? 数表(正規分布表)が N(0,1)N(0,1) で作られているため、どんな正規分布の確率も標準化すれば表から読み取れます——「一本の表で全ての正規分布に対応できる」という便利さです。


標準正規分布の確率計算

P(aZb)P(a \leq Z \leq b) は正規分布表(Φ\Phi 関数)を使います。

P(Zz)=Φ(z)P(Z \leq z) = \Phi(z)

よく使う値:

zzΦ(z)\Phi(z)
1.00.8413
1.640.9500
1.960.9750
2.00.9772
2.580.9951

具体的な計算例

例: 身長が N(170,72)N(170, 7^2) に従う集団で、身長が 180 cm 以上の割合は?

「平均170cm、標準偏差7cm」の集団で、180cmは平均から10cm上——標準偏差の何倍かに変換します:

Z=1801707=1071.43Z = \frac{180 - 170}{7} = \frac{10}{7} \approx 1.43

P(X180)=P(Z1.43)=1Φ(1.43)10.924=0.076P(X \geq 180) = P(Z \geq 1.43) = 1 - \Phi(1.43) \approx 1 - 0.924 = 0.076

約 7.6% が 180 cm 以上——「180cm以上はかなり少数派」という感覚と一致します。


正規分布が現れる理由:中心極限定理(予告)

「なぜ身長は正規分布になるの?」——「多数の独立な小さな要因の合計」は正規分布に従う——これが中心極限定理です。身長は遺伝子・栄養・環境などの要因の合計で決まるので、正規分布に従う、というわけです。第14回で詳しく学びます。


まとめ

  • 正規分布 N(μ,σ2)N(\mu, \sigma^2):自然界・統計手法の中心的分布——「ベルカーブの形」
  • 68-95-99.7 ルール±1σ\pm 1\sigma に 68%、±2σ\pm 2\sigma に 95%、±3σ\pm 3\sigma に 99.7%——「外れ値の目安」
  • 標準化 Z=(Xμ)/σZ = (X-\mu)/\sigmaN(0,1)N(0,1) に変換できる——「どの正規分布も同じ表で計算できる」
  • σ\sigma が小さいほど分布は尖って(高く細く)なる——「バラつきが少ない集団は山が細く高い」

次回はデータの整理——平均・中央値・四分位数・箱ひげ図を学びます。