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

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

- URL: https://toukei-lab.com/bayes
- 公開: 2022.11.29 / 更新: 2026.10.28
- サイト: スタビジ（https://toukei-lab.com）

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

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

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

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

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

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

:::box
**・ベイズ統計学とは**\
**・ベイズの定理**\
**・ベイズ推定**\
**・MCMC（マルコフ連鎖モンテカルロ法）**\
**・プログラミング言語（Stan/WinBugs）**\
**・オススメ勉強法**
:::

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

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

::youtube{#I7jiPkYUjGo}

## ベイズ統計学ってなに？

![AI](/wp-content/uploads/2017/12/Artificial-intelligence-amico-min.png)

:::talk{who="robotan"}
**ベイズ**って最近良く聞くけど何のことなの？？
:::

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

:::talk{who="robotan"}
ヘーーー！じゃあなんで最近急に聞くようになったの？？
:::

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

:::talk{who="robotan"}
へーそんな歴史があるんだー！面白い！もっとベイズについて詳しく知りたいな！
:::

:::talk{who="umatan"}
興味を持ってくれたかな？　それでは早速ベイズについて詳しく見ていこう！
:::

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

## ベイズ統計の定理

![Teacher](/wp-content/uploads/2017/11/Teacher-amico.png)

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

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

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

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

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

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

:::talk{who="umatan"}
それじゃあ具体的な例を考えてみよう
:::

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

![ベイズの定理](/wp-content/uploads/2022/11/7786cadf60adcd0c30d2d546273e537f.jpg)

:::talk{who="robotan"}
うわああこんなのほとんどの確率で病気Aにかかっているに決まっているじゃないか！
:::

:::talk{who="umatan"}
本当にそうかな？
:::

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

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

<table class="table">
<tbody>
<tr>
<td></td>
<td>陽性B<sub>T</sub></td>
<td>陰性B<sub>F</sub></td>
</tr>
<tr>
<td>病気A<sub>T</sub></td>
<td>100×0.9</td>
<td>100×0.1</td>
</tr>
<tr>
<td>病気A<sub>F</sub></td>
<td>9900×0.05</td>
<td>9900×0.95</td>
</tr>
</tbody>
</table>

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

<table class="table">
<tbody>
<tr>
<td></td>
<td>陽性B<sub>T</sub></td>
<td>陰性B<sub>F</sub></td>
</tr>
<tr>
<td>病気A<sub>T</sub></td>
<td>90</td>
<td>10</td>
</tr>
<tr>
<td>病気A<sub>F</sub></td>
<td>495</td>
<td>9405</td>
</tr>
<tr>
<td> 合計</td>
<td>585</td>
<td>9415</td>
</tr>
</tbody>
</table>

:::talk{who="robotan"}
あれれ？陽性と出るのが585でそのうち病気にかかっているのが90だから90/585≒0.154!　15%程しかないんだ！全然感覚と違う！
:::

:::talk{who="umatan"}
そうなんだ！こういう感覚と違うことをしっかり数式で計算できるのがベイズなんだ！じゃあベイズの定理での計算をしてみよう！
:::

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

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

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

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

:::box
**A：病気である事象**\
**B：陽性と判定される事象**
:::

求めたいのは、

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

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

この時、

:::box
**P(A)：病気にかかっている確率　＝　0.01**\
**P(B|A)：病気にかかっている時に陽性と判定される確率　＝　0.9\
P(B)：陽性と判定される確率 =？？**
:::

:::talk{who="robotan"}
あれれ、P(B)はどうやって求めるのー？？
:::

:::talk{who="umatan"}
P(B)は分解することで求められるんだよー！
:::

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

$$
p(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)=\frac{p(B|A)p(A)}{p(B)}=\frac{0.9\times0.01}{0.0585}\approx0.1538
$$

となります！

さっきの15.4％と一致しましたね！

:::talk{who="robotan"}
本当だ！ベイズって面白い！！
:::

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

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

:::box
あなたの前に閉じた3つのドアABCがあって、1つのドアの後ろには当たりが、2つのドアの後ろにははずれがある。

あなたが1つのドアを選択した後、司会が残りのドアのうちはずれのドアを開けてあなたに見せる。

ここであなたは、最初に選んだドアを、残っている開けられていないドアに変更してもよいと言われる。

あなたは変更するべきか？変更しないべきか？
:::

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

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

<https://toukei-lab.com/monty-hall-problem>

## ベイズ推定

![Site Stats](/wp-content/uploads/2017/11/Site-Stats-amico.png)

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

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

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

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

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

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

:::talk{who="umatan"}
この事前分布・事後分布・尤度とやらは先ほどのベイズの定理と対応させて考えることができるんだ！
:::

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

![ベイズの定理](/wp-content/uploads/2022/11/53c8486e7f528bd3483632b99a435164.jpg)

:::talk{who="umatan"}
例えば、コインを10回投げて、3回表が出たらそのコインの表がでる確率はいくらかい？
:::

:::talk{who="robotan"}
うーん、0.3かな？でもコインで0.3っておかしいなー
:::

:::talk{who="umatan"}
そうなんだ。手元にある尤度だけを使った最尤推定だと0.3という解になるんだけどやっぱり感覚と違うよね？ここでベイズ推定の出番！
:::

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

<mark>本当のところは分かりません。</mark>

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

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

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

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

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

## MCMC（マルコフ連鎖モンテカルロ法）

![python](/wp-content/uploads/2019/08/Admin-amico-min.png)

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

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

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

:::talk{who="robotan"}
なんかMCMCって難しそうだけど何のことなの？
:::

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

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

:::box
**１．パラメータの初期値を決め、事後分布の値（尤度×事前分布）を計算する**

**２．パラメータをランダムに少し動かした候補を作り、事後分布の値が大きくなれば移動、小さくなってもその比の確率で移動する。**

**３．これを何度も繰り返し、定常状態になった後のパラメータの値を集めると、事後分布からのサンプルになる。**
:::

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

:::talk{who="robotan"}
ふむふむ意外と簡単なアルゴリズムなんだねー
:::

:::talk{who="umatan"}
意外とシンプルなんだよ！
:::

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

![Coding](/wp-content/uploads/2017/11/Coding-amico.png)

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

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

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

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

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

### StanをRで実装するなら

![R](/wp-content/uploads/2017/12/r.png)

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

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

::product[StanとRでベイズ統計モデリング (Wonderful R)]{url="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fexec%2Fobidos%2FASIN%2F4320112423%2Fref%3Dnosim" image="https://images-fe.ssl-images-amazon.com/images/I/416xdqDozvL._SL160_.jpg" amazon="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Fsearch%3Fkeywords%3DStan%25E3%2580%2580%25E3%2583%2599%25E3%2582%25A4%25E3%2582%25BA%26__mk_ja_JP%3D%25E3%2582%25AB%25E3%2582%25BF%25E3%2582%25AB%25E3%2583%258A" rakuten="https://af.moshimo.com/af/c/click?a_id=858168&p_id=54&pc_id=54&pl_id=616&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FStan%25E3%2580%2580%25E3%2583%2599%25E3%2582%25A4%25E3%2582%25BA%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0" detail="松浦 健太郎 共立出版 2016-10-25"}

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

<https://toukei-lab.com/stan>

### StanをPythonで実装するなら

![Python](/wp-content/uploads/2017/12/python-screenshot.png)

Stan×Pythonなら以下の[Udemy講座](https://trk.udemy.com/N9qrr2)が圧倒的におすすめ！

[![Udemy　コース　PythonとStan](/wp-content/uploads/2020/04/udemy-python9-min.jpg)](https://trk.udemy.com/N9qrr2)

:::ref
[【PythonとStanで学ぶ】仕組みが分かるベイズ統計学入門](https://trk.udemy.com/N9qrr2)
:::

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

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

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

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

## ベイズ統計学　まとめ

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

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

:::talk{who="umatan"}
ベイズをマスターしよう！
:::

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

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

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

::product[データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)]{url="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fexec%2Fobidos%2FASIN%2F400006973X%2Fref%3Dnosim" image="https://images-fe.ssl-images-amazon.com/images/I/51eyDJSmLvL._SL160_.jpg" amazon="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Fsearch%3Fkeywords%3D%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E8%25A7%25A3%25E6%259E%2590%26__mk_ja_JP%3D%25E3%2582%25AB%25E3%2582%25BF%25E3%2582%25AB%25E3%2583%258A" rakuten="https://af.moshimo.com/af/c/click?a_id=858168&p_id=54&pc_id=54&pl_id=616&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E8%25A7%25A3%25E6%259E%2590%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0" detail="久保 拓弥 岩波書店 2012-05-19"}

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

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

<https://toukei-lab.com/%E5%8E%B3%E9%81%B88%E5%86%8A%EF%BC%81%E3%83%99%E3%82%A4%E3%82%BA%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%82%92%E5%8B%89%E5%BC%B7%E3%81%99%E3%82%8B%E4%B8%8A%E3%81%A7%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AA>

イラスト出典：**[Illustration by Stories by Freepik](https://stories.freepik.com/)**