このページでは統計の基本となるポワソン分布について全部で2つのモジュールで取り扱っていきます。

今日はPythonでポワソン分布を扱う方法を知りたいんです!
ポワソン分布を取り扱うためのモジュールはどういったものがあるんですか?

numpyやscipyといった科学技術計算を行うためのライブラリで扱うことができます!
今回はポワソン分布に従うデータを生成する方法を勉強していきましょう!
ポアソン分布は、イベントがランダムに発生し、平均的な発生率が一定である場合の確率分布を表現するのに使用されます。
この記事では、Pythonを使用してポアソン分布を取り扱う方法について解説します。
ポアソン分布は、単位時間あたりに平均λ回発生するイベント(例: 車の事故、電話の着信、メールの受信など)が、任意の時間間隔で発生する確率分布です。この分布は、次のような特性を持っています。
- イベントは独立して発生します。
- 単位時間あたりの平均イベント数(λ)が一定であると仮定されます。
- イベントが同じ時間帯内に複数回発生する確率はほとんどゼロです。
以下では、それぞれのライブラリの使い方を例とともに説明します。
ポワソン分布に従うデータを生成する2つの方法
Pythonでポワソン分布に従うデータを生成する方法は2つあります。
- numpy.random.poisson関数でデータ生成する方法
- scipy.stats.poissonモジュールでデータ生成する方法
生成したデータを元にグラフの描画も行います。それぞれ順番に説明していきます。
numpy.random.poisson関数でデータ生成する方法
numpyは科学計算を行うためのライブラリで、ポワソン分布からランダムな値を生成するnumpy.random.poisson()関数を提供しています。
import numpy as np
import matplotlib.pyplot as plt
# 平均λ
lamb = 4
# 平均λ=4のポワソン分布に従うランダムな値を1000件生成
s = np.random.poisson(lamb, 1000)
#ヒストグラムで表示
plt.hist(s)
plt.show()

scipy.stats.poissonモジュールでデータ生成する方法
scipyは科学技術計算を行うためのライブラリで、ポワソン分布を扱うためのscipy.stats.poissonモジュールを提供しています。
このモジュールには、ポワソン分布に関連する様々な関数が含まれています。
例えば、rvs()関数を使ってランダムな値を生成したり、pmf()関数を使って確率質量関数を計算したり、cdf()関数を使って累積分布関数を計算したりできます。
from scipy.stats import poisson
import matplotlib.pyplot as plt
# 平均λ
lamb = 5
# 確率質量関数
x = range(10)
pmf = poisson.pmf(x, lamb)
# 平均λ=5のポワソン分布に従うランダムな値を1000件生成
s = poisson.rvs(lamb, size=1000)
#ヒストグラムで表示
plt.hist(s)
plt.show()


離散型型のポワソン分布のグラフを表示できました~!
ポワソン分布を取り扱う方法もnumpyとscipyを用いる2種類の方法があるんですね!

そうなんです!
今回グラフの表示にはmatplotlibを用いましたが、seabornなど他のグラフ描画モジュールを用いることもできます。
詳細なグラフの設定を含めて目的に合わせて使い分けられると良いですね!
まとめ
この記事では、Pythonでポワソン分布に従うデータを生成する方法について2つの方法を紹介しました。
どちらの方法も、生成したデータを元にヒストグラムを描画することで、ポワソン分布の形状を確認することができます。
また、scipy.stats.poissonモジュールでは、確率質量関数や累積分布関数を計算する関数も提供されています。
これらの関数を使って、ポワソン分布の特徴を詳しく調べることもできます。
どちらの方法もプログラム自体は簡単で使いやすいので、目的に合わせて使い分けてみてください!
このサイトの記事一覧へは以下へアクセス!
コメント