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

二項分布

二項分布のおさらい

第7回で学んだ二項分布の復習です。「コインを10回投げてk回表が出る確率」のように、「成功確率 pp の試行を nn 回繰り返してちょうどk回成功する確率」の公式でした:

XB(n,p)    P(X=k)=C(n,k)pk(1p)nkX \sim B(n, p) \implies P(X=k) = C(n,k)\,p^k\,(1-p)^{n-k}

今回はその性質——「平均的に何回成功するか」「どのくらいバラつくか」をより深く掘り下げます。


平均と分散

XB(n,p)X \sim B(n, p) のとき:

E[X]=npE[X] = np

V[X]=np(1p)V[X] = np(1-p)

「10回やって成功確率30%なら、平均3回成功する」——当たり前に思える式ですが、これが数学的に証明できます。

証明のアイデア: X=X1+X2++XnX = X_1 + X_2 + \cdots + X_n(各回の成功を1、失敗を0とする確率変数の和)として考える。

「1回の試行」を表す各 XiX_iP(Xi=1)=pP(X_i=1) = pP(Xi=0)=1pP(X_i=0) = 1-p のベルヌーイ分布——「成功か失敗かの2択」です。

E[Xi]=p,V[Xi]=p(1p)E[X_i] = p,\quad V[X_i] = p(1-p)

前回学んだ期待値・分散の足し算の性質を使えば:

E[X]=E[Xi]=np,V[X]=V[Xi]=np(1p)E[X] = \sum E[X_i] = np,\quad V[X] = \sum V[X_i] = np(1-p)

(独立な確率変数の和の分散は各分散の和)


ガルトンボード(プリンコ)シミュレーション

ガルトンボードは、ボールが釘に当たるたびに左右どちらかに落ちる装置です。「パチンコ台を縦にしたようなもの」——テレビゲームやバラエティ番組で見たことがあるかもしれません。これは二項分布の物理的な実演です。

  • ボールが釘に当たるたびに確率 1/2 で左または右に進む
  • n 段の釘を通過すると、最終的な位置の分布が B(n,0.5)B(n, 0.5) に従う

ボールが積み重なるにつれて、真ん中が高く両端が低い「山型」の分布が現れてきます。

ガルトンボード:ボールが釘を通って落ちるたびに二項分布が積み上がる
var ROWS = 8;
var balls = [];
var bins = [];
var maxBin = 0;
var spawnTimer = 0;

for (var b = 0; b <= ROWS; b++) bins.push(0);

var pegX = [];
var pegY = [];
for (var row = 0; row < ROWS; row++) {
for (var col = 0; col <= row; col++) {
  pegX.push(W / 2 + (col - row / 2) * 44);
  pegY.push(50 + row * 28);
}
}

function spawnBall() {
balls.push({
  x: W / 2 + (Math.random() - 0.5) * 4,
  y: 18,
  vx: 0,
  vy: 0,
  row: 0,
  col: 0,
  done: false,
  color: 'hsl(' + Math.floor(Math.random() * 360) + ',70%,60%)'
});
}

function loop() {
ctx.clearRect(0, 0, W, H);
spawnTimer += 0.016;

if (spawnTimer > 0.18 && balls.length < 60) {
  spawnBall();
  spawnTimer = 0;
}

for (var r = 0; r < ROWS; r++) {
  for (var c = 0; c <= r; c++) {
    var px = W / 2 + (c - r / 2) * 44;
    var py = 50 + r * 28;
    ctx.fillStyle = '#475569';
    ctx.beginPath();
    ctx.arc(px, py, 4, 0, Math.PI * 2);
    ctx.fill();
  }
}

for (var i = balls.length - 1; i >= 0; i--) {
  var ball = balls[i];
  if (ball.done) continue;

  ball.vy += 0.25;
  ball.y += ball.vy;
  ball.x += ball.vx;

  var nextRowY = 50 + ball.row * 28;
  if (ball.y >= nextRowY && ball.row < ROWS) {
    var go = Math.random() < 0.5 ? -1 : 1;
    ball.col += (go === 1) ? 1 : 0;
    ball.vx = go * 1.5;
    ball.vy = 1;
    ball.row++;
    ball.y = nextRowY;
  }

  var floorY = 50 + ROWS * 28 + 10;
  if (ball.y >= floorY) {
    var binIdx = ball.col;
    bins[binIdx]++;
    if (bins[binIdx] > maxBin) maxBin = bins[binIdx];
    balls.splice(i, 1);
    continue;
  }

  ctx.fillStyle = ball.color;
  ctx.beginPath();
  ctx.arc(ball.x, ball.y, 6, 0, Math.PI * 2);
  ctx.fill();
}

var binFloor = 50 + ROWS * 28 + 14;
var binW = 38;
for (var j = 0; j <= ROWS; j++) {
  var bx = W / 2 + (j - ROWS / 2) * 44;
  var bh = maxBin > 0 ? (bins[j] / maxBin) * 100 : 0;
  ctx.fillStyle = '#3b82f6';
  ctx.fillRect(bx - binW / 2, binFloor, binW, bh);
  ctx.strokeStyle = '#1e2940';
  ctx.lineWidth = 1;
  ctx.strokeRect(bx - binW / 2, binFloor, binW, bh);
  ctx.fillStyle = '#94a3b8';
  ctx.font = '10px monospace';
  ctx.textAlign = 'center';
  ctx.fillText(j, bx, binFloor + bh + 14);
  if (bins[j] > 0) {
    ctx.fillStyle = '#e2e8f0';
    ctx.font = '9px monospace';
    ctx.fillText(bins[j], bx, binFloor + bh - 3);
  }
}

var total = 0;
for (var b2 = 0; b2 <= ROWS; b2++) total += bins[b2];

ctx.fillStyle = '#e2e8f0';
ctx.font = 'bold 13px sans-serif';
ctx.textAlign = 'center';
ctx.fillText('ガルトンボード  n=8段  p=0.5', W / 2, 16);
ctx.fillStyle = '#94a3b8';
ctx.font = '12px sans-serif';
ctx.fillText('総ボール数: ' + total + '  → 分布は B(8, 0.5) に近づく', W / 2, 388);

requestAnimationFrame(loop);
}
loop();

二項分布の形

p の値によって分布の形が変わります——「成功しにくいほど左に山ができ、成功しやすいほど右に山ができる」という直感と一致します:

pp形状
p=0.5p = 0.5左右対称
p<0.5p < 0.5右に歪む(低いkに集中)
p>0.5p > 0.5左に歪む(高いkに集中)
nn が大きい正規分布に近づく(中心極限定理)

二項分布の正規近似

nn が大きく pp が 0 でも 1 でもないとき、二項分布は正規分布で近似できます(第11回で詳しく学ぶ)。「10回の試行」では離散的なバーチャートでも、「1000回の試行」では滑らかな山型になってくる——これが正規近似の直感です:

B(n,p)N(np,  np(1p))(n が大きいとき)B(n,p) \approx N(np,\; np(1-p)) \quad (n \text{ が大きいとき})

目安:np5np \geq 5 かつ n(1p)5n(1-p) \geq 5 が満たされるとき良い近似になります。


実用例

例1: 製品の不良率が 3%。100個生産して、ちょうど 3 個が不良品になる確率は?

XB(100,0.03)X \sim B(100, 0.03)

P(X=3)=C(100,3)×0.033×0.97970.228P(X=3) = C(100,3) \times 0.03^3 \times 0.97^{97} \approx 0.228

例2: 打率 0.25 の打者が5打席。0本安打(ノーヒット)の確率は?

「1本もヒットが出ない = 5打席全部失敗」——5回連続で失敗する確率:

P(X=0)=C(5,0)×0.250×0.755=0.7550.237P(X=0) = C(5,0) \times 0.25^0 \times 0.75^5 = 0.75^5 \approx 0.237

4打席に1回ヒットを打つ打者でも、5打数ノーヒットになる確率は約24%——「スランプ」のように見えても偶然の範囲内であることが多いのです。


まとめ

  • 二項分布 B(n,p)B(n,p):n回の独立ベルヌーイ試行の成功回数——「n回中何回成功するか」
  • 平均 E[X]=npE[X] = np、分散 V[X]=np(1p)V[X] = np(1-p)——「np回成功が平均」という直感と一致
  • ガルトンボードは二項分布の物理的モデル——「左右ランダムが積み重なって山型に」
  • n が大きいとき正規分布で近似可能(np5np \geq 5, n(1p)5n(1-p) \geq 5)——「大数の力で滑らかな山型に」

次回はいよいよ確率・統計の主役、正規分布(ガウス分布)を学びます。