ベイズ統計学

ベイズ統計学

  • このエントリーをはてなブックマークに追加
  • LINEで送る

統計学を勉強する上で非常に重要な分野であるベイズ統計学について説明していきたいと思います。

 

ベイズってなに?

ウマ
ベイズって最近良く聞くけど何のことなの??
シンエー
ベイズ統計学は物凄く応用範囲が広くて、ネイマン・ピアソンの伝統的な統計学とは違う、確率的な考え方を用いた統計学なんだ。応用範囲は広いんだけど、使う人の恣意性が取り込まれてしまうという問題と積分計算が複雑で解析的に解けないことが多いという問題があって長い間日の目を見ることがなかったんだ
ウマ
ヘーーー!じゃあなんで最近急に聞くようになったの??
シンエー
一番大きいのはコンピューターのスペックが上がって複雑な計算ができるようになったこと!!あとで紹介するけどマルコフ連鎖モンテカルロ法と呼ばれる乱数シミュレーションで近似的に解が求められるようになったんだよ!
ウマ
へーそんな歴史があるんだー!面白い!もっとベイズについて詳しく知りたいな!
シンエー
興味を持ってくれたかな? それでは早速ベイズについて詳しく見ていこう!

 

ベイズの流れ

ベイズは高校生の確率の教科書などにも載っている、ベイズの定理を基本の原則として、様々な方面へ応用できます。

ここでは大きな枠組みを捉えるということで、

・ベイズの定理

・ベイズ推定

・MCMC(マルコフ連鎖モンテカルロ法)

・プログラミング言語(Stan/WinBugs)

・オススメ書籍

の順番で説明していきたいと思います。

 

ベイズの定理

ベイズの定理はベイズ統計学の基本中の基本。大事な式なので覚えておきましょう。

\begin{eqnarray*}
p(A|B)&=&\frac{p(B|A)p(A)}{p(B)}
\end{eqnarray*}

これは以下の条件付き確率と同時確率の関係から導出できます。

\begin{eqnarray*}
p(A,B)=p(B|A)p(A)=p(A|B)p(B)
\end{eqnarray*}

この関係式を変形するとベイズの定理が導出されることが分かるでしょう。

ウマ
うーんその定理とやらは何か見たことがある気がするけど具体的にどういう場面で使えるのか全くイメージが湧かないなあ。

シンエー
それじゃあ具体的な例を考えてみよう

ある町で100人に1人かかる病気Aがある。
病気Aにかかった人が検査Bを受けると9割が陽性と判定される。
健康な人が検査Bを受けると9.5割が陰性と判定される。
陽性と判定された時、病気Aにかかっている可能性はどのくらいか。

ウマ
うわああこんなのほとんどの確率で病気Aにかかっているに決まっているじゃないか!

シンエー
本当にそうかな?ベイズの定理を使って考えてみよう

陽性BT 陰性BF
病気AT 100×0.9 100×0.1
病気AF 9900×0.05 9900×0.95
シンエー
まずは簡単に具体的な数字と表で考えてみよう。1万人規模で考えると表のようになるね。病気か否かをAで表して陽性か否かをBで表すことにするよ。TとFはTrueとFalseの略だよ。さてこの時表の中身を計算するとどのような値になるかな。

 

陽性BT 陰性BF
病気AT 90 10
病気AF 495 9405
 合計 585 9415
ウマ
あれれ?陽性と出るのが585でそのうち病気にかかっているのが90だから90/585≒0.154! 15%と程しかないんだ!全然感覚と違う!
シンエー
そうなんだ!こういう感覚と違うことをしっかり数式で計算できるのがベイズなんだ!じゃあベイズの定理での計算をしてみよう!

ベイズの定理での計算はこちら→ベイズの定理

 

ベイズ推定

先ほどのベイズの定理や例題では基本的に確率を元に考えていました。しかし、ベイズの枠組みはそれだけではおさまりません。このベイズ推定では、ベイズの定理における確率を確率分布へと拡張させ考えていきます。

ベイズ推定に関しては事前分布と事後分布、そして尤度という考え方が非常に重要です。

事前分布は前から持っている情報。尤度は手に入れた情報。事後分布は前情報と手に入れた情報を合わせた情報というイメージを持っていれば良いでしょう。

シンエー
この事前分布・事後分布・尤度とやらは先ほどのベイズの定理と対応させて考えることができるんだ!

\begin{eqnarray*}
p(A|B){\propto}p(B|A)p(A)
=事後分布{\propto}尤度×事前分布
\end{eqnarray*}

シンエー
例えば、コインを10回投げて、3回表が出たらそのコインの表がでる確率はいくらかい?
ウマ
うーん、0.3かな?でもコインで0.3っておかしいなー
シンエー
そうなんだ。手元にある尤度だけを使った最尤推定だと0.3という解になるんだけどやっぱり感覚と違うよね?ここでベイズ推定の出番!事前情報、すなわち事前分布を取り入れることでちょっとばかし経験的・感覚的に近い値になるんだよ。詳しい話はまた別の回に話そうか。

→ベイズ推定

 

MCMC(マルコフ連鎖モンテカルロ法)

さっきも出てきましたが、ベイズ統計学の最近の台頭の立役者です。

MCMCがなかったら正直ベイズ統計学はここまで盛り上がっていないはずです。

では、MCMCとは何なのでしょうか?

ウマ
なんかMCMCって難しそうだけど何のことなの?
シンエー
非常に簡単で手当たり次第尤度を変化させて計算していくことなんだ!

そうなんです。実はMCMCは非常に簡単な方法で、基本的には以下のようなアルゴリズムです。

1.あるパラメータの尤度を計算する

2.そこからパラメータを上下に動かし尤度を計算し、よくなった方に動く。

3.定常状態になるまでパラメータを動かす。

ウマ
ふむふむ意外と簡単なアルゴリズムなんだねー
シンエー
MCMCの中にも細かい手法があるが、それは別の回に回そうか!

 

プログラミング言語(Stan/WinBugs)

続いてベイズを勉強するためのプログラミング言語に関してです。

ベイズのアルゴリズムは基本的にどんなプログラミング言語でも記述することができますが、より容易に記述するための言語が実装されています。

例えば、StanやWinBugsなどです。

どちらも使ったことがありますが、現環境だと圧倒的にStanの方がオススメです。

Stanは記述に癖がなく、R上で回すことができます。

また、関連書籍も分かりやすく、エラーも分かりやすいため初心者にはStanをおすすめします。

 

オススメ書籍

ベイズを勉強するとは言っても色んな書籍があってなかなかどれが良いか分からないと思います。

以下で紹介する書籍はオススメなので是非読んでみて下さい。
■完全独習ベイズ統計学

非常に分かりやすくベイズの概念を教えてくれる。

■道具としてのベイズ統計学

手で計算しながらベイズの理解が深まる。

■データ解析のための統計モデリング入門

回帰モデルからベイズモデルまでの流れがスムーズに分かる。

■StanとRでベイズ統計モデリング

Stanの使い方が非常に分かりやすく載っている。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*

CAPTCHA