ベイズの公式の「事後確率」について
はじめに
最近、ベイズ的なアレを色々調べているのだけど、結構面白い。
ただ、少し気になることがあり、かつ、それがあまりウェブに記載がなかったので、メモがてら書いておくことにした。
統計モデリングと「ベイズの公式」
フラットな立場でいえば「統計モデリング」や「確率モデリング」、少し匂いをつけると「ベイズモデリング」は、データ解析者がなんかしらのパラメータを内部にもつ確率モデルを設定し、そのパラメータを観測されたデータに基づいて適宜更新していく一連のプロセスによって成り立つ。
それで、どのようにして確率モデルを更新していくか?というと、「ベイズモデリング」の名の通り、かの有名な「ベイズの公式」を用いる。よく言われるのは「原因」と「結果」の関係だが、もう少しフラットに説明する。
ある対象がどんな状態なのかを、その対象が呈する表現から推測する。対象への理解として、一般的な知識や経験に基づいて、どれくらいの確率で各状態になるのかが分かっている($P(State)$が既知)。さらに、その対象が或る状態だったときに、注目している表現を呈する確率も知っている($P(Expression | State)$が既知)。このとき、ある表現が観測されたときの、各状態でありうる確率を求める。
今回の文脈では、対象とは解析者が措定した確率モデルのことにほかならず、「状態」として、確率モデルのパラメータを $\theta$, 「表現」として、観測されうるデータを $Data$ とすれば:
$$ P(\theta | Data) = \frac{P(Data | \theta)P(\theta)}{P(Data)} = \frac{P(Data | \theta)P(\theta)}{\sum_{i} P(Data|\theta_i)P(\theta_i)} $$
がベイズの公式となる。この式は、繰り返しになるが、「今の確率モデル($\theta$をパラメータとするモデル)のもとで、仮に $Data$ が観測されたときに、確率モデルのパラメータ として $\theta$ が、より正確である(現実に即している)確率」を表している。
この時点では、$Data$ はまだ「実際に観測されたデータ」ではなく「観測されうるデータ」として、つまり、「もしも話」だということに留意しておく。
世の中的には広く、これの左辺($P(\theta | Data)$)を事後分布と呼び、一方で右辺の $P(\theta)$ のことを事前分布と読んでいる。
おかゆは、この状態で「事後確率」と呼ぼうとするのはちょっと早漏なんちゃうかな?と思っている、というのがこの記事のメイン。
「モデルの更新」をきちんと書く
「事前確率 → 事後確率」という「更新」のプロセスが、ベイズの公式に含まれているかと言われると甚だ怪しい。上述したように、ベイズの公式が述べるのは「もしも話」であって、「実際に云々のデータが観測され、更新した後の $\theta$ の確率」それ自体を語っているわけではない。非常に雑にいうと、モデルをどう更新するのかは完全に人為的な営みであり、ベイズの公式が提示してくる $P(\theta | Data)$ は更新方針のいち材料でしかない。……という立場を取ると、$P(\theta | Data)$ のことを「事後確率」と呼ぶのは、ベイズの公式の時点では早計だというように思うわけです。
モデルの更新は、ベイズの公式ではなく、人の手によって行われるというのが、まず1つ目のメモです。
つまるところ、$P^{\rm{new}}(\theta)$ をどうやって決定しようかという話です。これはある種、アルゴリズム的な話でもありますが、確率論的な裏付けがほしいです。というわけで:
$$ P^{\rm{new}}(\theta) = \sum_{i} P(\theta | data_i) P(data_i) $$
によって更新することにします。「云々のデータがこれくらいの確率で出る」という情報と、ちょうど先ほどベイズの公式で求めた「云々のデータが出たときの、パラメータ $\theta$ の当たり具合」という情報を用いれば、なるほど、モデルは更新できそうです。
さて、データの観測を一発勝負にします。一度だけ観測し、あるデータ $data_k$ が得られた場合、その確率分布は:
$$ P(Data = data_i) = \Delta_{i, k} $$
とできるはずです。ここで、今は簡単のために離散分布を考えているので、$\Delta_{i, k}$はクロネッカーのデルタです。連続分布を考えるなら、ディラックのデルタにしてください。
今まさにそのサンプリングによって得られるデータの確率は、実際の観測によって収束した、という風に考えたわけです。
得られるデータの確率分布(というか、$data_k$ が得られたという事実)、および、ベイズの公式の左辺項を用いて、結果的に更新後の確率モデルパラメータの分布は:
$$
P^{\rm{new}}(\theta) = \sum{i} P(\theta | data_i)P(data_i) = \sum{i} P(\theta | data_i) \Delta_{i, k} = P(\theta | data_k)
$$
となり、結果的に、$P(\theta | data_k)$ が確かに「事後確率」として採用できることが示せました。
まとめ
モデルの更新は、ベイズの公式ではなく、人の手によって行われるものであるはずです。そこで、いわゆる「ベイズ更新」を用いる際のその手の動かし方をきちんと書くことで、確かにふつう「事後確率」と呼ばれるものが、更新後の分布として採用されることを示しました。
このプロセスを経ると、確かにベイズの公式の左辺項は「事後確率」と呼んでいいですが、ベイズの公式を「事後確率を算出するための式」として権威づけるのは、ちょっとやりすぎな感じはしますよね。
おまけ
Newton誌は毎月買っています。
— 黒木玄 Gen Kuroki (@genkuroki) July 29, 2020
Newton 2020年9月号は、「主観確率」「ベイズ主義」でベイズ統計について説明する有害解説のA級戦犯の一人である松原望さんが監修しているベイズ統計特集。
期待通りに「ベイズ主義」「主観確率」のひどい解説が炸裂しているページがありました。 #統計 https://t.co/8yTU53iWsM
やっぱベイズ更新って「もし云々のデータが出た場合、今のモデルでパラメータがθkの可能性って低い/高いね」があって、かつ、「そして実際にそのデータが出た」という観測によるデータ確率の収束があるから、「変更」の道がひらけるよなあ
— おかゆさん (@oka_iu_tcan) September 21, 2020