はじめに
ベイズ統計とは、一言で言うと「新しい情報をもとに確率を更新する方法」です。
この記事では、Pythonを使ってベイズ統計の基本を紹介し、風邪の診断を例にその実用性を説明します。
ベイズの定理とは?
ベイズの定理は、新しい情報が得られたときに、それに基づいて確率を更新する方法です。具体的には以下の式で表されます:
$$
P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}
$$
ここで、
- $( P(A|B) )$ は新しい情報Bを得た後のAの確率。
- $( P(B|A) )$ はAが真であるときにBが観測される確率。
- $( P(A) )$ は新しい情報Bを得る前のAの確率。
- $( P(B) )$ はBが起こる全体の確率。
Pythonでのベイズ推定の実装
次に、Pythonを使ってベイズ推定の簡単な例を見てみましょう。ここでは、ある人が風邪を引いているかどうかを診断する例を取り上げます。
ライブラリのインストール
まず、必要なライブラリをインストールします。ここでは、numpy
と matplotlib
を使用します。
!pip install japanize-matplotlib
データの準備
次に、風邪の症状(例えば、咳)が出た場合に風邪を引いている確率を計算します。ここでは、次の仮定をおきます:
- 全人口のうち、風邪を引いている人の割合は5%(事前確率)。
- 風邪を引いている人が咳をしている確率は80%(条件付き確率)。
- 咳をしている人全体の割合は10%(証拠)。
# ベイズの定理のパラメータ
prior = 0.05 # 事前確率:風邪を引いている人の割合
likelihood = 0.80 # 条件付き確率:風邪を引いている人が咳をしている確率
evidence = 0.10 # 証拠:全体で咳をしている人の割合
# 事後確率の計算
posterior = (likelihood * prior) / evidence
print(f'事後確率:{posterior:.2f}')
このコードでは、事前確率、条件付き確率、証拠を用いて事後確率を計算しています。計算結果は、新しいデータ(咳の症状)が得られた後の風邪を引いている確率を示します。
結果の解釈
計算結果から、新しいデータ(咳)が得られた後の風邪を引いている確率が分かります。例えば、計算結果が0.4(40%)であれば、咳をしている場合、風邪を引いている確率は40%であることを意味します。
視覚化
次に、事前確率と事後確率を比較して視覚化します。これにより、確率がどのように更新されたかを直感的に理解しやすくなります。
import matplotlib.pyplot as plt
import japanize_matplotlib
labels = ['事前確率', '事後確率']
probabilities = [prior, posterior]
plt.bar(labels, probabilities, color=['blue', 'orange'])
plt.ylim(0, 1)
plt.ylabel('確率')
plt.title('風邪を引いている確率の更新')
plt.show()
結果の解釈
上記のプロットでは、事前確率と事後確率が比較されています。事後確率が高くなっていることが分かります。これは、新しいデータ(咳の症状)によって風邪を引いている確率が更新されたことを示しています。
まとめ
この記事では、ベイズの定理とベイズ推定の基本概念を紹介し、Pythonを使って風邪の診断を例に簡単なデータ分析を行いました。
最初に、風邪を引いている確率は5%(事前確率)でした。しかし、咳という新しい情報が得られたことで、この確率は40%(事後確率)に上がりました。つまり、咳をしている場合、風邪を引いている可能性が大幅に高くなることがわかります。
ベイズ統計は、このように新しい情報をもとに確率を更新する強力なツールです。日常生活のさまざまな場面で役立つため、さらに詳細な例を通してベイズ統計の応用を探求していきましょう。