本文へ移動
カテゴリ

Webマーケ

Webマーケの記事すべてSEOサイト運営データマネジメントビジネス・マーケ概論広告

インタビュー

インタビューの記事すべて

おすすめサービス

おすすめサービスの記事すべて

おすすめ勉強法

おすすめ勉強法の記事すべて

おすすめ書籍

おすすめ書籍の記事すべて

データサイエンス

データサイエンスの記事すべてデータ解析品質工学多変量解析機械学習生成AI統計学

プログラミング

プログラミングの記事すべてPythonRSQLプログラミングスクール

スタビジについて

記事一覧運営者情報お問い合わせ

【入門】ベイズ統計学をベイズの定理の基本から解説!

目次
ウマたんウマたん

本記事では、伝統的な統計学とは対立した立場を取るベイズ統計学についてまとめていきます。今注目されているベイズ統計学の基本的な部分をしっかりおさえておくことが重要です。

ベイズ統計学は最近になって脚光を浴びるようになってきた手法。

伝統的な統計学とは一線を画す考え方だったのですが、現在は切っても切り離せない存在となってきています。

この記事では、統計学を勉強する上で非常に重要な分野であるベイズ統計学について説明していきます。

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

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

の順番で解説していきますよ!

以下の動画でも簡単に解説していますので、こちらも参考にしてみてください!

YouTubeの動画

ベイズ統計学ってなに?

AI

ロボたんロボたん

ベイズって最近良く聞くけど何のことなの??

ウマたんウマたん

ベイズ統計学は物凄く応用範囲が広くて、ネイマン・ピアソンの伝統的な統計学とは違う、確率的な考え方を用いた統計学なんだ。応用範囲は広いんだけど、使う人の恣意性が取り込まれてしまうという問題と積分計算が複雑で解析的に解けないことが多いという問題があって長い間日の目を見ることがなかったんだ

ロボたんロボたん

ヘーーー!じゃあなんで最近急に聞くようになったの??

ウマたんウマたん

一番大きいのはコンピューターのスペックが上がって複雑な計算ができるようになったこと!!あとで紹介するけどマルコフ連鎖モンテカルロ法と呼ばれる乱数シミュレーションで近似的に解が求められるようになったんだよ!

ロボたんロボたん

へーそんな歴史があるんだー!面白い!もっとベイズについて詳しく知りたいな!

ウマたんウマたん

興味を持ってくれたかな? それでは早速ベイズについて詳しく見ていこう!

ベイズ統計学は非常に奥が深く面白い分野なんです!

ベイズ統計の定理

Teacher

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

p(A∣B)=p(B∣A)p(A)p(B)p(A|B)=\frac{p(B|A)p(A)}{p(B)}

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

p(A,B)=p(B∣A)p(A)=p(A∣B)p(B)p(A,B)=p(B|A)p(A)=p(A|B)p(B)

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

ロボたんロボたん

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

ウマたんウマたん

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

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

ベイズの定理

ロボたんロボたん

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

ウマたんウマたん

本当にそうかな?

まずは、ベイズの定理は使わず実際の数値をあてはめて考えていきましょう!

この町に10000人いると考えてみましょう!

陽性BT 陰性BF
病気AT 100×0.9 100×0.1
病気AF 9900×0.05 9900×0.95
ウマたんウマたん

病気か否かをAで表して陽性か否かをBで表すことにするよ。TとFはTrueとFalseの略だよ。さてこの時表の中身を計算するとどのような値になるかな。

陽性BT 陰性BF
病気AT 90 10
病気AF 495 9405
 合計 585 9415
ロボたんロボたん

あれれ?陽性と出るのが585でそのうち病気にかかっているのが90だから90/585≒0.154! 15%程しかないんだ!全然感覚と違う!

ウマたんウマたん

そうなんだ!こういう感覚と違うことをしっかり数式で計算できるのがベイズなんだ!じゃあベイズの定理での計算をしてみよう!

実際に数値を当てはめても算出することができますが、ベイズの定理を用いることでこの数値を算出することができます。

おさらいですが、ベイズの定理は以下のように表すことが出来ました。

p(A∣B)=p(B∣A)p(A)p(B)p(A|B)=\frac{p(B|A)p(A)}{p(B)}

この時、今回のケースでは以下のようになっていますね。

求めたいのは、

P(A|B):陽性と判定された時に本当に病気にかかっている確率

ベイズの定理を使えば、P(A|B)を求めるのにP(A)・P(B)・P(B|A)の情報さえ分かればよさそうですね。

この時、

ロボたんロボたん

あれれ、P(B)はどうやって求めるのー??

ウマたんウマたん

P(B)は分解することで求められるんだよー!

P(B)は確率の分解をして求めていきます。

p(B)=p(B∣AT)p(AT)+p(B∣AF)p(AF)=0.9×0.01+0.05×0.99=0.0585p(B)=p(B|A_T)p(A_T)+p(B|A_F)p(A_F)=0.9\times0.01+0.05\times0.99=0.0585

ということは・・・

p(A∣B)=p(B∣A)p(A)p(B)=0.9×0.010.0585≈0.1538p(A|B)=\frac{p(B|A)p(A)}{p(B)}=\frac{0.9\times0.01}{0.0585}\approx0.1538

となります!

さっきの15.4%と一致しましたね!

ロボたんロボたん

本当だ!ベイズって面白い!!

さらにベイズの定理の面白さを知るのにおすすめなのがモンティ・ホール問題という問題。

モンティ・ホール問題は以下のような問題です。

この時、実はドアを変更したほうが当たる確率が2倍になるのです!

以下の記事でベイズの定理からモンティ・ホール問題について解説しているので是非チェックしてみてください!

直感に騙されるな!ベイズで理解するモンティ・ホール問題当サイト【スタビジ】の本記事では、物議を醸したゲーム「モンティ・ホール問題」についてベイズ統計学の世界から解説していきたいと思います!モンティ・ホール問題はベイズの面白さを理解する導入として非常におすすめですよ!

ベイズ推定

Site Stats

先ほどのベイズの定理や例題では基本的に確率を元に考えていました。

しかし、ベイズの枠組みはそれだけではおさまりません。

このベイズ推定では、ベイズの定理における確率を確率分布へと拡張させ考えていきます。

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

事前分布は前から持っている情報。尤度は手に入れた情報。

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

ウマたんウマたん

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

p(A∣B)∝p(B∣A) p(A)事後分布∝尤度×事前分布\begin{aligned} p(A|B)&\propto p(B|A)\,p(A)\\ \text{事後分布}&\propto \text{尤度}\times\text{事前分布} \end{aligned}

ベイズの定理

ウマたんウマたん

例えば、コインを10回投げて、3回表が出たらそのコインの表がでる確率はいくらかい?

ロボたんロボたん

うーん、0.3かな?でもコインで0.3っておかしいなー

ウマたんウマたん

そうなんだ。手元にある尤度だけを使った最尤推定だと0.3という解になるんだけどやっぱり感覚と違うよね?ここでベイズ推定の出番!

表の出る確率が0.5のコインが一般的なイメージですが、もしかしたら0.3かもしれないしはたまた0.7かもしれません。

本当のところは分かりません。

ベイズ統計学では、パラメータ(表の出る確率)が何なのかを確率分布で表します。

事前にある程度の情報がある時は、その情報を基にして事前分布を定義します。

一方で事前分布にどんな分布を設定したらよいか分からない時はどうすればよいでしょう?

ベイズでは事前情報の全くない状態を無情報事前分布と言い、一般的には一様分布を用いることが多いです。

実際に起きた事象を基に確率分布を更新していき、パラメータ(表の出る確率)の事後分布を算出するのがベイズ推定なのです。

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

python

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

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

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

ロボたんロボたん

なんかMCMCって難しそうだけど何のことなの?

ウマたんウマたん

乱数を使ってパラメータを少しずつ動かしながら、事後分布に従うサンプルをたくさん集めていく方法なんだ!

そうなんです。実はMCMCの考え方はシンプルで、代表的なメトロポリス法だと以下のようなアルゴリズムです。

よくなった方にだけ動くと最大値を探すだけになってしまいますが、悪くなる方にもときどき動くことで、事後分布の形そのものを再現できるんです。

ロボたんロボたん

ふむふむ意外と簡単なアルゴリズムなんだねー

ウマたんウマたん

意外とシンプルなんだよ!

ベイズ統計で使うプログラミング言語

Coding

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

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

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

どちらも使ったことがありますが、現環境だと圧倒的にStanの方がオススメです。(WinBugsは今はもう開発が続いていません。Pythonなら、PyMCというライブラリもよく使われます)

Stanは記述に癖がなく、RやPythonで回すことができます。エラーも分かりやすいため初心者にはStanをおすすめします。

StanをRで実装するなら

R

Stan×Rを勉強するなら以下の本が圧倒的にオススメ!

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

Stanを勉強する上でのオススメ本は以下にまとめています!

複雑な統計モデリングに便利!Stan×Python or Rの勉強法とオススメ本!当サイト【スタビジ】の本記事では、統計モデリングに重要なプログラミング言語「Stan」の勉強法について見ていきます!PythonとRと同時に勉強することでStanによる複雑なモデリングをカンタンに実装することができますよー!

StanをPythonで実装するなら

Python

Stan×Pythonなら以下のUdemy講座が圧倒的におすすめ!

Udemy コース PythonとStan

この教材では、ベイズの基本的な概念からMCMC・階層ベイズ・状態空間モデルをPythonとStanを使いながら実装していきます。

理論と実装が分かりやすく学べるので非常におすすめなんです!

なかなかStanが学べる教材はないので貴重です。

ぜひチェックしてみてくださいねー!

ベイズ統計学 まとめ

ベイズ統計学について簡単にまとめてきました。

実はベイズ統計学は非常に奥が深くて色んな考え方があるんです!

ウマたんウマたん

ベイズをマスターしよう!

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

以下の書籍が特にオススメなので是非読んでみて下さい。

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

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

以下の記事にベイズ統計学のオススメ本をまとめているのであわせてご覧ください!

厳選8冊!ベイズ統計学を勉強する上でおすすめな本・参考書をご紹介!当サイト【スタビジ】の本記事では、現在ホットな分野である「ベイズ統計学」を学ぶ上でオススメな本をまとめていきます!ベイズ統計学は奥が深く難解な数式も多く登場します。まずはライトに全体像がつかめる書籍から勉強しましょう!

イラスト出典:Illustration by Stories by Freepik

スポンサーリンク

ウマたんスタビジ編集長

大学院は理系の統計科学研究室で、ベイズ統計学・時系列分析・異常検知を研究。日系・外資の消費財メーカーのデータサイエンティストを経て、現在は会社を経営しながらデータサイエンティストとして働いています。

スタビジアカデミー

読んだ内容を、スタアカの「統計学概要」コースで身につける

データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。最初のレッスンは無料で見られます。