BAYESIAN INFERENCE

ベイズ推定

観測データが増えるたびに事後分布が更新される確率的推論の基本フレームワーク

INTERACTIVE CHART
事前分布
事後分布
MAP推定
95%信用区間
事前分布 α(成功側の強さ)
大きいほど「成功確率が高い」という事前予想
2
120
事前分布 β(失敗側の強さ)
大きいほど「失敗確率が高い」という事前予想
2
120
事前分布とは?
データを見る前の「最初の予想」です。α が大きいほど「成功しやすい」、β が大きいほど「失敗しやすい」と予想していることになります。

α・βの読み方:α-1 が「事前に想定した成功回数」、β-1 が「失敗回数」と考えると分かりやすいです。例:「10回中3回表が出そう」→ α=4, β=8。また α+β の合計が大きいほど予想への自信が強く、データが来ても動きにくくなります。
観測データ
コイン投げの結果を入力します。表(成功)と裏(失敗)の回数を増減できます。
表(成功)7
裏(失敗)3
観測数 10 回 / 成功率 70%
表が出る確率70%のコインを20回投げた結果をシミュレーションします。押すたびにランダムに変わります。
解説
📌
ベイズ推定とは

ベイズ推定を一言でいうと、「自分の予想」を「実際のデータ」で修正していく方法です。

たとえば、友達から渡されたコインがあるとします。最初は「普通のコインだから、表が出る確率は半々(50%)くらいだろう」と予想しますよね。 これが事前分布(データを見る前の予想)です。

実際にコインを10回投げたら、7回も表が出ました。すると「あれ、このコイン、ちょっと表が出やすいかも?」と予想を修正しますよね。 この「予想の修正」を数学的に正確にやるのがベイズ推定です。 修正後の予想を事後分布と呼びます。

しかも、ベイズ推定が返すのは「p = 0.7」のような一つの数字ではなく、「p は 0.55〜0.82 あたりにありそう」という確率の分布です。 つまり「どのくらい自信があるか」まで分かります。上のグラフで、データを増やすほど分布が鋭くなる(自信が増す)様子を確認してみてください。

ベイズの定理(数式):P(仮説 | データ) ∝ P(データ | 仮説) × P(仮説)日本語にすると:「データを見た後の予想」は「そのデータが出る確率」と「最初の予想」の掛け算で決まる
ベイズ推定の特徴
  • 🎯経験や知識を「予想」として組み込める:これがベイズ推定の最大の強みです。たとえば医師が「この病気の発症率は約1%」という知識を持っていれば、それを事前分布として設定できます。データだけに頼らず、専門知識と組み合わせることで、少ないデータでもより正確な推定ができます。
  • 📊「どのくらい自信があるか」まで分かる:普通の統計では「p = 0.7」のように一つの数字だけを返します。ベイズ推定は「p は 0.55〜0.82 のあたりにありそう(95%の確率で)」というように、推定の不確かさ(自信の度合い)まで教えてくれます。
  • 🔄データが増えるたびに予想を更新できる:新しいデータが来るたびに、前回の結果に追加で更新できます(逐次更新)。全データを最初から計算し直す必要がありません。上のツールで「コインを投げる」ボタンを押すと、1回ごとに分布が変わっていく様子を体験できます。
  • 🔢データが多いほど、事前の予想に関係なく正しい答えに近づく:最初の予想が多少間違っていても、データを十分に集めれば事後分布は真の値に収束します。上のツールでα・βを極端な値にしてから、観測データをたくさん追加してみてください。
🗺️
どんな場面で使われているか
📧 スパムフィルター
Gmailなどのメールサービスで使われています。「この単語が含まれるメールがスパムである確率」を、届くメールごとに更新して精度を上げていきます。
🏥 医療診断
検査結果が陽性だったとき、「本当にその病気である確率」を計算します。事前の発症率(例: 0.1%)を考慮することで、偽陽性に惑わされない判断ができます。
🎮 A/Bテスト
Webサイトの「ボタンの色を変えたらクリック率は上がるか?」をベイズ的に評価します。少ないデータでも途中経過が分かるため、早めに判断できます。
🔍 検索エンジン
ユーザーの検索意図を推定するのにベイズ推定が使われています。過去の検索履歴(事前知識)と入力キーワード(データ)を組み合わせます。
📖
用語解説
事前分布(Prior)
= 最初の予想
データを見るの段階で「成功確率 p はこれくらいだろう」と予想したもの。 グラフのグレーの破線がこれです。 上のスライダーで α・β を変えると形が変わります。α=β=2 なら「半々くらいかな」という予想、α=10, β=2 なら「成功しやすいはず」という予想になります。
p最初の予想
尤度(Likelihood)
= データの証拠力
「もし成功確率が p だとしたら、今回の結果(例: 10回中7回成功)が起きる確率はどれくらいか?」を計算したもの。 データが多いほど証拠が強くなり、事前の予想よりデータの方が影響力を持つようになります。
実際の観測結果
事後分布(Posterior)
= 更新された予想
事前分布(最初の予想)をデータで更新した結果。グラフの紫の実線がこれです。 データが増えるほど分布が鋭くなり、「この辺りが正解だろう」という自信が強くなっていきます。 上のツールでデータを追加して、破線(予想)→ 実線(更新後)の変化を観察してみてください。
MAP
MAP推定値
= 最も確率が高い値
事後分布の中で一番山が高い点の値です。「最もありそうな成功確率はいくつか?」の答えにあたります。 グラフの赤い破線がMAP推定値の位置を示しています。
具体例:α=10, β=10(「半々くらいだろう」という強めの予想)で、コインを10回投げて表6・裏4だった場合、MAP ≈ 0.54 になります。 データだけ見れば 6/10 = 0.6 ですが、事前の予想(0.5)に引っ張られて 0.5 と 0.6 の間になります。 これがベイズ推定の特徴で、事前の知識とデータの折衷で答えが決まります。 事前の予想が強いほど(α・βが大きいほど)データに流されにくく、データが多いほど事前の予想より観測結果が優先されます。
MAP最もありそうな値
95%信用区間
= 自信のある範囲
「成功確率 p がこの範囲に収まる確率が95%」という区間です。 グラフの紫の塗りつぶし部分がこれにあたります。 データが増えるほどこの範囲が狭くなり、推定の精度が上がっていることが分かります。
95%の確率でこの範囲
p(成功確率)
= 推定したい値
コイン投げでいうと「表が出る確率」のことです。この p の値を推定するのがベイズ推定の目的です。 p は 0〜1 の範囲をとり、0.5 なら「表と裏が半々」、0.7 なら「10回中7回くらい表が出る」ことを意味します。 サンプルデータの「p=0.7」は、データ生成に使った真の成功確率です。
n(試行回数)
= データの数
コインを何回投げたかの回数です。n が大きいほどデータが多くなり、推定の精度が上がります。 サンプルデータの「n=20」は、コインを20回投げたデータを生成するという意味です。 一般に n が増えると事後分布が鋭くなり、信用区間が狭くなっていきます。
確率密度(Probability Density)
= グラフの縦軸
グラフの縦軸は「確率そのもの」ではなく、その付近にどれくらい確率が集中しているかを表しています。 山が高いほど「成功確率 p がその値である可能性が高い」という意味です。 確率密度は面積で確率を表すため、値が1を超えることもありますが正常です(例: α=10, β=10 だと山の頂点は約3になります)。 データが増えて分布が鋭くなると、山が高く(確率密度が大きく)なっていきます。
確率密度 ↑
🪜
ベイズ更新の手順

コイン投げを例に、ベイズ推定がどう動くかを4ステップで見てみましょう。

1
最初の予想を決める(事前分布)
まず「このコインの表が出る確率はどれくらいだろう?」と予想します。 何も情報がなければ「どの確率もありえる」(α=1, β=1:平らなグラフ)、 「普通のコインだろう」と思えば「半々くらい」(α=2, β=2:真ん中が山になるグラフ)にします。
「どの確率もありえる」
2
実際にデータを集める
コインを実際に投げてみます。例えば10回投げて、表が6回・裏が4回だったとします。 上のツールの「コインを投げる」ボタンを押すと、1回ずつ投げた結果が追加されます。
表:6 裏:4
3
予想をデータで更新する(事後分布)
事前分布のα・βは「事前に想定した成功・失敗の回数+1」でした(用語解説参照)。 ここに実際に観測した回数を足すだけで、予想が更新されます。
事後α = 事前α + 表の回数 / 事後β = 事前β + 裏の回数
例:最初の予想が α=2, β=2(半々くらい)で、10回投げて表6回・裏4回なら → 事後α=8, 事後β=6。 グラフでは破線(予想)→ 実線(更新後)に変わる様子が見えます。
予想 → 更新後
4
結果を読み取る・さらに更新を続ける
事後α=8, 事後β=6 の場合、MAP ≈ 0.58 になります。データだけなら 6/10 = 0.6 ですが、事前の予想「半々くらい」(α=2, β=2)に引っ張られて 0.58 に落ち着きます。 これが事前の知識とデータの折衷です。 さらにデータが増えたら、今の事後分布を新しい事前分布として同じ手順を繰り返せます。これが逐次更新です。
MAP + 95%信用区間
🏥
具体例で理解する:医療検査とベイズの定理

ベイズ推定の威力がよく分かる有名な例を紹介します。これは統計学の教科書で必ず登場する問題です。

問題
ある病気は1,000人に1人がかかります(発症率 0.1%)。 この病気を検出する検査があり、感度99%(病気の人を正しく「陽性」と判定できる確率)、特異度99%(健康な人を正しく「陰性」と判定できる確率)です。 あなたが検査を受けて「陽性」と出ました。本当に病気である確率は?
1
事前確率(検査前の予想)
何も情報がない段階では、あなたが病気である確率は発症率と同じ 0.1%(1/1,000)です。
2
データ(検査結果=陽性)で更新
1,000人が検査を受けると:病気の1人はほぼ確実に陽性(感度99%)。 健康な999人のうち約10人が誤って陽性(偽陽性、特異度99%)。 陽性は合計約11人
3
事後確率(検査後の答え)
陽性の11人のうち、本当に病気なのは1人だけ。つまり、陽性でも本当に病気である確率は 約9%(1/11)しかありません!
この問題をベイズ推定に当てはめると
事前分布発症率 0.1%。検査を受ける前の段階では「病気である確率はとても低い」という予想
尤度(データ)検査結果が「陽性」だったという事実。感度99%なので、病気なら陽性が出やすいという証拠力
事後分布検査結果で更新された「本当に病気である確率」の分布。事前の0.1%から大きく上がるが、99%にはならない
MAP推定値最もありそうな値 ≈ 約9%。検査精度99%でも、事前確率が低いため「陽性=病気」とはならない
95%信用区間病気である確率が収まる範囲。この例では非常に狭い区間(9%前後)に集中する
この例を分布図にすると
事前分布(発症率 0.1%)
事後分布(検査後)
MAP推定値
グレーの破線が「検査前の予想」で、ほぼ 0% 付近に張り付いています(1,000人に1人しかかからないため)。 検査で陽性が出ると、紫の実線のように 9% 付近に山が移動します。 赤い破線(MAP)が「最もありそうな値 ≈ 9%」です。
つまり、検査精度が99%でも、陽性と出た人が本当に病気である確率はたった9%ということがこのグラフから読み取れます。
この例のポイント「検査精度99%」と聞くとほぼ確実に思えますが、事前確率(発症率)が低いと、陽性でも実際に病気である確率は意外と低くなります。 事前の知識(発症率)を無視してデータ(検査結果)だけで判断すると間違えてしまう――これがベイズ推定の核心的な教えです。

関連コンテンツ