【統計】Pythonで幾何分布を理解する

これまでに二項分布、ポアソン分布について紹介しましたが、確率分布には幾何分布という分布も存在します。今回は幾何分布がどういう分布なのかということを確認し、Pythonで幾何分布を描画してイメージを掴んでいきたいと思います。

本記事では、ポアソン分布をどのように求めるかではなく、ポアソンとはどういうもので、どんな時に使うかをざっくり理解できることを目標とします。

二項分布およびポアソン分布については以下をご覧ください。

https://www.learning-nao.com/?p=3235

幾何分布とは

幾何分布とは、「成功確率pのベルヌーイ試行を繰り返したとき、初めて成功するまでの試行回数Xが従う確率分布」を指します。

確率変数Xが幾何分布に従う場合、成功確率がpの試行においてk回目で初めて成功する(X=kとなる)確率は以下のように求まります。

例えばコインを投げて表が出る確率は1/2です。コイン投げを繰り返し、3投目で初めて表が出る確率は以下のように求めることができます。

P(X=3)=(1-p)^(k-1)\ p=(1-1/2\ )^(3-1)\times1/2=0.125

3投目で初めて表が出る確率は12.5%であることがわかりました。

幾何分布の期待値と分散 

幾何分布の期待値E(X)と分散V(X)は以下のようになります。

コインを投げて表が出る確率はp=1/2なので、初めて表が出る期待値は2回となります。

E(X)\ =\ \frac{1}{p}\ =\ \frac{1}{\frac{1}{2}}\ =\ 2

サイコロを振って3が出る確率は1/6なので、初めて3が出る期待値は6回となります。

E(X)\ =\ \frac{1}{p}\ =\ \frac{1}{\frac{1}{6}}\ =\ 6

無記憶性

幾何分布には無記憶性という重要な性質があります。「ある事象が発生する確率は、その事象が発生する前の情報影響を一切受けない」というものです。

例えばコインを3回投げるときに、1回目、2回目が連続で表だったとして、その結果は3投目に表が出る確率には一切影響しないというわけです。

よくある例でギャンブルで負けが続いていると「そろそろ勝てるんじゃないか」とかいう考えに陥りがちですが、この無記憶性という性質から考えるとそんなことは一切ありません。負け続けているというこれまでの事実は、次の結果に何の影響も与えないのです。

幾何分布を描画する

ここからは幾何分布をPythonで描画してみます。今回はコインを投げてn回目で初めて表(裏でもいい)が出る確率をグラフにしてみます。

scipy.stats.geomを使うことで、幾何分布での確率を求めることができます。

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats


#コインを投げて表が出る確率 
p=1/2
x = np.arange(1, 10)
y = stats.geom.pmf(k=x, p=p)

#ここからグラフ描画
plt.plot(x, y, 'bo')
plt.vlines(x, 0, y)
plt.xlabel('成功までの試行回数', fontfamily='Meiryo')
plt.ylabel('確率', fontfamily='Meiryo')
plt.show()
幾何分布のグラフ

コインを1回投げて表が出る確率は0.5となっています。2回目初めて表が出る確率、3回目、、、となるにつれ、その確率は小さくなっていくことがわかります。

Pythonでデータサイエンスするなら

Pythonでデータサイエンスをするなら、以下の書籍がおすすめです。Pandas、matplotlib、Numpy、scikit-learnといったデータサイエンスに必要なライブラリを、体系立てて一通り学ぶことができます。

ややお値段高めですが、これ1冊で十分という内容・ボリュームなので、損はしないと思います^^

初学者の方にはこちらもオススメです^^

まとめ

幾何分布についてどのようなものなのかというところと、グラフを描画してその分布を確認しました。

幾何分布の無記憶性をしっかり頭に入れてギャンブルには臨みたいものですね(?)

ではでは👋