確率分布と二項分布(期待値と分散)
「平均して何回当たるか?」「どれくらいブレるのか?」を定量化するデータサイエンスの土台
- 1
- 確率変数 X に対し、各値をとる確率の対応関係を「確率分布」と呼び、中心を表す「期待値 E(X)」とばらつきを表す「分散 V(X)」で特徴づけられる
- 2
- 成功確率 p の試行を n 回繰り返す「二項分布 B(n, p)」の期待値は np、分散は np(1-p) という明快な公式で決まる
- 3
- WebサービスのA/Bテストの勝敗判定(クリック率の有意差判定)や、製造ラインの不良品率管理はすべて二項分布の数理が原点である
なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値
なぜ生まれたのか?
「偶然起きるバラバラな出来事」の中に潜む秩序(平均して何回起きるか、どれくらいブレるか)を定量化するために生まれた。
身につく武器・思考力
1回の結果に一喜一憂せず、期待値(リターン)と分散・標準偏差(リスク)の2軸で物事を科学的に判断するリスクリテラシーが身につく。
実社会・ITでの活躍現場
- •WebサービスやECサイトのA/Bテストにおける勝敗・クリック率検証
- •工場ラインにおける不良品発生率の品質管理(シックスシグマ)
- •保険会社における保険料率やリスクの数理設計(アクチュアリー業務)
- •ゲームのクリティカルヒット確率やダメージ乱数の分散設計
Layer 1 — 直感・シミュレーター
試行回数 n と成功確率 p をスライダーで動かしてみよう。二項分布 P(X=k) の確率ヒストグラムがリアルタイムに再計算され、試行回数 n を大きくするにつれて、離散的なヒストグラムが滑らかな釣鐘型の曲線(正規分布)へと変貌していく中心極限定理の片鱗を体感できる。
サイコロを 60 回振ったとき、1の目が出る回数の期待値 E(X) と分散 V(X) はそれぞれいくつか?
Layer 2 — 定義・受験・証明
定義
確率変数 のとり得る値 とその確率 の組を確率分布という。 - 期待値(平均):
- 分散(ばらつき):
- 二項分布 : 成功確率 の独立な試行を 回行うとき、成功回数 となる確率は
公式・数理モデル
証明・導出
二項分布の期待値 の導出: 各試行 における成功インジケータ確率変数を とする(成功時 1、失敗時 0)。 の期待値は、 である。 全 回の総成功回数は と表される。 期待値の線形性(独立性に関わらず和の期待値は期待値の和になる)より、
同様に、各試行が互いに独立であるため分散の加法性が成り立ち、 より、
がシンプルに導かれる。
押さえておきたいポイント
- 期待値 は「長期的に見た平均リターン」を示す
- 分散 および標準偏差 は「ブレ幅(リスク)」を示す
- 二項定理 により、全確率の和は常に必ず 1 になる
- ラプラスの定理(ド・モアブル=ラプラスの定理): が十分大きいとき、二項分布 は平均 、分散 の正規分布 で近似できる
本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。
Layer 3 — 工学応用・現場実装
WebサイトのA/Bテストにおける二項分布の信頼区間と有意差判定
2つのデザイン案 A(訪問数 、クリック数 )と B(訪問数 、クリック数 )において、クリック率の二項分布パラメータの差をZ検定し、統計的に95%以上の信頼度で有意差があるかを判定するアルゴリズム。
1// A/Bテストの2標本比率のZ検定(二項分布の正規近似)2interface ABTestResult {3 rateA: number;4 rateB: number;5 zScore: number;6 isSignificant95: boolean;7 message: string;8}910function runABTest(visitorsA: number, clicksA: number, visitorsB: number, clicksB: number): ABTestResult {11 const pA = clicksA / visitorsA;12 const pB = clicksB / visitorsB;1314 // プールした平均成功率15 const pPool = (clicksA + clicksB) / (visitorsA + visitorsB);16 // 二項分布の分散に基づく標準誤差 SE17 const se = Math.sqrt(pPool * (1 - pPool) * (1 / visitorsA + 1 / visitorsB));1819 const zScore = (pB - pA) / se;20 // 95%信頼区間の臨界値: |Z| >= 1.9621 const isSignificant = Math.abs(zScore) >= 1.96;2223 let message = "有意差なし(単なる偶然のブレの可能性が高い)";24 if (zScore >= 1.96) {25 message = "デザインBが統計的に有意に勝利(95%信頼度)";26 } else if (zScore <= -1.96) {27 message = "デザインAが統計的に有意に勝利(デザインBは改悪)";28 }2930 return {31 rateA: pA,32 rateB: pB,33 zScore,34 isSignificant95: isSignificant,35 message,36 };37}3839// 例: A案 1,000人中50人クリック(5%) vs B案 1,000人中75人クリック(7.5%)40const result = runABTest(1000, 50, 1000, 75);41console.log(`A案CVR: ${(result.rateA * 100).toFixed(1)}%, B案CVR: ${(result.rateB * 100).toFixed(1)}%`);42console.log(`Z値: ${result.zScore.toFixed(2)} -> ${result.message}`);43// Z値: 2.30 -> デザインBが統計的に有意に勝利(95%信頼度)
次に学ぶならコレ!おすすめトピック
この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元