今回もほとんどChatGPT先生に聞きますが、前回はベイズの定理を学びました。
聞いたことはあっても計算はしたことなかったのですが、バラバラに丁寧に確率を求めて掛け算したりしたら
それっぽくなりました。
おじさんが頑張ってベイズの定理を学ぶ
今回学ぶベイズ推定とは、観測データと事前知識(事前分布)を組み合わせて、確率的に不確実なパラメータを推定するための手法です。これはベイズの定理に基づいており、観測されたデータに基づいてパラメータの事後分布を更新します。頻度主義的な統計手法とは異なり、ベイズ推定ではパラメータを固定値と見なすのではなく、確率分布で表現し、データによってその分布を更新することが特徴です。
ベイズ推定の基本構造
ベイズ推定では、次のようにベイズの定理を用いてパラメータの事後分布を求めます:
ここで:
: 事後確率、観測データP(\theta | X) を基にしたパラメータX の確率分布\theta : 尤度、パラメータP(X | \theta) が与えられたときにデータ\theta が得られる確率X : 事前確率、パラメータP(\theta) に対する事前の確率分布\theta : 周辺尤度、データP(X) 全体の確率X
この式を使うことで、観測データによって事前分布
いきなりパラメータとか出てきて意味がわかりませんが、進めたいと思います。
ベイズ推定の流れ
-
事前分布の設定
ベイズ推定では、推定対象となるパラメータ に対する事前の知識を確率分布として表します。これが事前分布です。事前知識がない場合、均等な確率(例: 一様分布)を選ぶことが一般的です。\theta -
尤度関数の設定
次に、観測データ を基にパラメータX をどのように推定するか、データ生成過程をモデル化します。このモデルは尤度関数として表現されます。例えば、データが正規分布に従う場合は、正規分布の確率密度関数を用います。\theta -
事後分布の計算
観測データが得られた後、ベイズの定理を使って事後分布を計算します。事後分布は、データから得られる情報と事前知識を組み合わせた、最も信頼性の高いパラメータ分布です。 -
パラメータ推定
事後分布から、平均値や最頻値(モード)を計算してパラメータを推定します。場合によっては、分布の不確実性を考慮して信頼区間を導出することもあります。
ベイズ推定の特徴
-
事前知識の活用:ベイズ推定は、データが少ない場合でも事前知識をモデルに組み込むことができ、特に過去のデータや経験に基づいた推定が重要な場合に有用です。
-
不確実性の考慮:パラメータを単一の値ではなく、確率分布として扱うため、推定結果の不確実性や変動を評価できます。
-
モデルの更新が可能:新しいデータが得られるたびに、ベイズ推定では事後分布を次の事前分布として更新し、継続的にモデルを改良できます。
簡単な例:コインの表が出る確率の推定
コインの表が出る確率をベイズ推定で算出する例題をいろいろ探してみましたが、思ったよりも難しそうでした。ベイズ推定では事前分布を仮定しておくようで、その辺りがよくわかりませんでしたが、例題を無理やりやってみようと思います。
コイン投げの例を用いて、どのようにベイズ推定が行われるか、具体的に詳しく説明してもらいます(ChatGPTに)。
1. 問題設定
コインを投げたときに表が出る確率を
: コインを投げた回数n = 10 : 表が出た回数k = 7
この状況で、コインが表を出す確率
2. ベイズ推定の流れ
1. 事前分布の設定
ベイズ推定では、まず
コインの表が出る確率
一様分布は、特に情報がない場合に使われる典型的な事前分布です。
事前分布としては、ベータ分布(
ベイズ推定において、事前分布にベータ分布を使い、尤度関数に二項分布を使う理由は、主に次の2つのポイントに集約されます。
ベータ分布と二項分布が共役関係にある
ベイズ推定では、事前分布と尤度関数の組み合わせを選ぶ際に、計算の容易さを考慮して共役分布を使うことが一般的です。共役分布とは、事前分布と尤度関数が特定の関係にあるとき、事後分布も同じ種類の分布になるという特性を持つ分布です。
- ベータ分布は、二項分布に対して共役事前分布です。つまり、二項分布を尤度関数に使用し、事前分布をベータ分布とすると、事後分布もベータ分布の形を維持します。
この共役関係のおかげで、計算がシンプルになります。具体的には、事後分布の形がベータ分布のままであるため、パラメータ更新が簡単になります。事後分布のパラメータも単純な和で更新されます。
例: ベータ分布と二項分布の共役関係
-
事前分布: ベータ分布
Beta(\alpha, \beta) P(\theta) = \theta^{\alpha - 1} (1 - \theta)^{\beta - 1} -
尤度関数: 二項分布(観測データが
回の試行でn 回成功した場合)k P(k | \theta) = \binom{n}{k} \theta^k (1 - \theta)^{n - k} -
事後分布: ベイズの定理を適用すると、事後分布もベータ分布の形を維持します。
P(\theta | k) = Beta(\alpha + k, \beta + n - k)
このように、共役事前分布を使うと、事後分布の形がベータ分布のままで計算が容易になります。
二項分布とベータ分布の用途の違い
二項分布の役割: 尤度関数
二項分布は、離散的なデータ(成功・失敗など)に対する観測モデルを表します。つまり、観測データに基づいて、あるパラメータ(この場合、表が出る確率
- 二項分布は、
回の試行に対してn 回成功する確率を与えます。k は、「表がP(k | \theta) 回出た」というデータの尤度(そのデータがどれくらい起こりやすいか)を表します。k
ベータ分布の役割: 事前分布
ベータ分布は、連続的なパラメータ(成功確率
- ベータ分布は、確率
がどの値をとるかに関する事前の不確実性をモデル化します。\theta - 例えば、ベータ分布
は、一様分布で「事前に何の情報もない」という仮定に基づきますが、過去のデータに応じて、事前分布の形状を調整することも可能です。Beta(1, 1)
- 例えば、ベータ分布
ベイズ推定の流れにおける役割分担
ベイズ推定では、観測データを用いてパラメータの事前分布を更新し、事後分布を求めます。この流れの中で、二項分布とベータ分布がそれぞれ異なる役割を果たしています。
- 事前分布(ベータ分布): パラメータ
に対する事前の信念を表現します。\theta - 尤度関数(二項分布): 観測データに基づき、特定のパラメータ
のもとでデータが得られる確率を表します。\theta - 事後分布(ベータ分布): 観測データを反映して更新された
の分布です。\theta
2. 尤度関数の設定
次に、データ(表が出た回数)に基づいて尤度関数を設定します。ここでは、コイン投げの成功(表が出る)が二項分布に従うと仮定します。尤度関数は、コインを10回投げて7回表が出る確率を、コインが表を出す確率
コイン投げが二項分布に従うことを仮定すると、成功回数
ここで:
: コインを投げた回数n = 10 : 表が出た回数k = 7 : 表が出る確率\theta
この式が尤度関数であり、データが観測されたときにどれくらいの確率でそのデータが得られるかを表しています。
3. 事後分布の計算
次に、ベイズの定理を使って事後分布を計算します。ベイズの定理は以下のように表されます:
ここで:
: 事後分布(観測データP(\theta | k) を基にしたk の分布)\theta : 尤度関数P(k | \theta) : 事前分布P(\theta) : 観測データP(k) が得られる全体の確率(周辺尤度)k
事前分布
事前分布がベータ分布、尤度が二項分布の場合、事後分布はベータ分布の形になります。この場合、事後分布は次のようになります:
ここで
つまり、観測データ(7回の表と3回の裏)を反映して、事後分布は
4. パラメータ推定
最後に、この事後分布から
これを使って、
つまり、コインを10回投げて7回表が出た場合、ベイズ推定では表が出る確率
3. ベイズ推定の特徴と利点
-
事前分布の影響:ベイズ推定では、事前にどのような分布を設定するかによって結果が変わる場合があります。事前知識を反映したい場合には、適切な事前分布を選ぶことが重要です。例えば、過去に似た実験があり、その結果を反映したい場合、そのデータに基づいて事前分布を設定できます。
-
データに応じた更新:ベイズ推定では、観測データが追加されるごとに、事後分布を次の事前分布として利用して推定を更新していくことができます。これにより、データが少ない段階でも推定が可能で、データが増えるにつれて精度が向上します。
-
不確実性の扱い:ベイズ推定は、パラメータを確率分布で表すため、不確実性を考慮に入れた推定が可能です。観測データが少ない場合には、事後分布が広くなるため、パラメータの不確実性が高いことを反映しています。
このように、ベイズ推定では事前分布、尤度関数、そして観測データを組み合わせて、コインの表が出る確率を確率分布として推定します。
難しいですね。。。
上記の計算では規格化定数を計算しなくてもいいのが楽なのでしょうか。
二項分布とベータ分布を仮定することで、事後分布を出せるのはわかりました。
勉強不足で苦労しそうです。