Bayes統計による推論

ベイズ統計学

Aを理論モデル、Bを観測データとした場合に、条件付き確率に対する次の等式を利用して、与えられたデータに基づいて理論モデルについて推論することができる。

P(A|B) = P(B|A)*P(A)/P(B)

通常は、理論モデルAがあったとき、そこからデータBを得る確率P(B|A)を計算することが(原理的には)できる。一方、観測であるデータBを得たときに、そのような結果を引き起こすモデルとしてどのようなものが適当かという問いは自明ではない。あらゆるモデルを考えたのでは範囲が広すぎるが、あるモデルを考えたときに、そのモデルのパラメータを推論するというのは取り扱いが可能である。理論モデルから観測結果を予測するという順問題に対して、観測されたデータから理論モデルの妥当性やパラメータを決定するという逆問題への一つのアプローチである。

課題

確率分布と確率事象の生成・描画

Pythonを使ったデータ解析と描画の練習。Pythonのモジュール(numpy, matplotlib.pyplot, scipy)を利用するのでインストールしておく。

sudo pip3 install numpy matplotlib scipy

データを基にしたモデル・パラメータのベイズ推定

ガウス分布にしたがって生成された事象から、元の確率分布の平均と標準偏差をベイズ法によって求める。

P(p|x) = P(x|p)*P(p)

この手順を事象数がN=2, 10, 100の場合について実行したものが以下の図である。データはmu=50, sigma=6.0として生成した。 上左の図が生成された変数の分布、2段目の図は平均と標準偏差の事前分布(一様分布)、下段は平均と標準偏差の事後分布である。データの事象数が増えるにしたがって、事後分布が鋭くなっていく様子が分かる。

test2.png, test10.png, test100.png

コードは githubへのリンクにある。

簡単な問題への適用

2重スリット実験における光学系のセットアップの推定

singleSlit_l10mm_1m.png

BayesInference (last edited 2021-09-30 09:20:02 by TakanoriKono)