独立な試行
独立とは何か
「昨日の天気は今日のサイコロに影響するか?」——影響しませんよね。「昨日雨だったから今日は6が出やすい」なんてことはない。このように「一方の結果が他方に全く影響しない」関係を独立といいます。
2つの事象 A, B が独立(independent)であるとは、A が起こったかどうかが B の確率に全く影響を与えないことをいう。
数学的な定義:
条件付き確率で言い換えると:(Aの情報があってもBの確率は変わらない)
「独立なら、単純に掛け算で求められる」——これが独立の最大の便利さです。
独立と排反の違い
混同しやすい2つの概念を整理します——「独立」と「排反」は全く別の概念です。
| 独立 | 排反 | |
|---|---|---|
| 意味 | 一方の結果が他方に影響しない | 同時には起こらない |
| 式 | ||
| 例 | コイン1枚目と2枚目 | サイコロで1と6が同時に出る |
注意: 排反な事象は(両方の確率が0でない限り)独立ではありません——「同時に起こらない」というのは「片方が起きたら絶対もう片方は起きない」という強い影響関係(依存)です。「独立」とは全く逆の方向性です。
コイン2枚の独立性
コインを2枚投げるとき、標本空間は の4通り。
「1枚目の結果が2枚目に影響するか?」——もちろんしません。だから独立として掛け算が使えます:
2枚のコインは独立なので、乗法の単純な適用で計算できます。
コインシミュレーション
var results = { HH: 0, HT: 0, TH: 0, TT: 0 };
var total = 0;
var maxTrials = 0;
var flipping = false;
var flipQueue = 0;
var lastFlip = '';
var animT = 0;
var keys = ['HH', 'HT', 'TH', 'TT'];
var colors = ['#f59e0b', '#3b82f6', '#22c55e', '#ef4444'];
document.addEventListener('click', function() {
if (!flipping) {
flipQueue = 100;
flipping = true;
maxTrials = total + 100;
}
});
function flip() {
var c1 = Math.random() < 0.5 ? 'H' : 'T';
var c2 = Math.random() < 0.5 ? 'H' : 'T';
var key = c1 + c2;
results[key]++;
total++;
lastFlip = key;
return key;
}
function loop() {
ctx.clearRect(0, 0, W, H);
animT += 0.05;
if (flipping && flipQueue > 0) {
var batchSize = Math.min(5, flipQueue);
for (var b = 0; b < batchSize; b++) {
flip();
flipQueue--;
}
if (flipQueue <= 0) flipping = false;
}
var barAreaX = 30, barAreaY = 60, barAreaH = 220, barAreaW = 380;
var barW = 70, gap = (barAreaW - 4 * barW) / 5;
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
var count = results[k];
var ratio = total > 0 ? count / total : 0;
var bx = barAreaX + gap + i * (barW + gap);
var bh = ratio * barAreaH;
var by = barAreaY + barAreaH - bh;
ctx.fillStyle = colors[i] + '33';
ctx.fillRect(bx, barAreaY, barW, barAreaH);
ctx.fillStyle = colors[i];
ctx.fillRect(bx, by, barW, bh);
ctx.strokeStyle = '#334155';
ctx.lineWidth = 1;
ctx.strokeRect(bx, barAreaY, barW, barAreaH);
ctx.fillStyle = '#e2e8f0';
ctx.font = 'bold 16px monospace';
ctx.textAlign = 'center';
ctx.fillText(k, bx + barW / 2, barAreaY + barAreaH + 20);
ctx.fillStyle = colors[i];
ctx.font = '13px monospace';
ctx.fillText((ratio * 100).toFixed(1) + '%', bx + barW / 2, barAreaY + barAreaH + 38);
ctx.fillStyle = '#64748b';
ctx.font = '11px sans-serif';
ctx.fillText('n=' + count, bx + barW / 2, barAreaY + barAreaH + 54);
}
var theorY = barAreaY + barAreaH * (1 - 0.25);
ctx.strokeStyle = '#fbbf24';
ctx.lineWidth = 2;
ctx.setLineDash([6, 3]);
ctx.beginPath();
ctx.moveTo(barAreaX, theorY);
ctx.lineTo(barAreaX + barAreaW, theorY);
ctx.stroke();
ctx.setLineDash([]);
ctx.fillStyle = '#fbbf24';
ctx.font = '12px sans-serif';
ctx.textAlign = 'left';
ctx.fillText('理論値 25%', barAreaX + barAreaW + 4, theorY + 4);
ctx.fillStyle = '#e2e8f0';
ctx.font = 'bold 14px sans-serif';
ctx.textAlign = 'center';
ctx.fillText('総試行数: ' + total, W / 2, 28);
if (lastFlip) {
var idx = keys.indexOf(lastFlip);
ctx.fillStyle = colors[idx];
ctx.font = 'bold 14px monospace';
ctx.fillText('最後の結果: ' + lastFlip, W / 2, 45);
}
if (total === 0) {
ctx.fillStyle = '#fbbf24';
ctx.font = '14px sans-serif';
ctx.textAlign = 'center';
ctx.fillText('クリックで100回フリップ!', W / 2, 330);
} else {
ctx.fillStyle = '#64748b';
ctx.font = '12px sans-serif';
ctx.fillText('クリックでさらに100回追加', W / 2, 330);
}
requestAnimationFrame(loop);
}
loop(); 独立な試行の連鎖
複数の独立な試行を続けて行う場合、各結果の確率を掛け合わせるだけです——「掛け算のシンプルさ」が独立の恩恵です。
例: 表が出る確率 1/2 のコインを3回投げて、3回連続表が出る確率は?
例: サイコロを4回振って、すべて偶数が出る確率は?
独立性の確認方法
実際のデータで A と B が独立かどうか確認するには——「掛け算の結果と実際の確率を比べる」:
比が1から大きく外れている場合、A と B の間に関連性があることを示します。これが統計的独立性のテスト( 検定)の基礎になります——「独立のはずなのにズレている」を測る方法です。
練習問題
問1. 表と裏の出やすさが等しいコインを5回投げる。すべて表の確率は?
問2. あるプロダクションラインで製品が不良品になる確率は 2%。3個続けて良品になる確率は?
問3. 問2で少なくとも1個が不良品になる確率は?——「余事象を使う」:
まとめ
- 独立な事象では ——「掛け算だけで求められる」
- 独立と排反は全く異なる概念——「同時に起きない(排反)」≠「影響しない(独立)」
- 独立な試行を繰り返す場合は確率を掛け合わせるだけ
- シミュレーションを重ねると、HH・HT・TH・TT はそれぞれ 1/4 に収束する——「大数の法則」
次回は独立な試行の繰り返しを体系化した二項分布—— を学びます。