離散型乱数の生成

Pythonで学ぶモンテカルロ・シミュレーション

Izzy Weber

Curriculum Manager, DataCamp

必須インポート

import scipy.stats as st

import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt
Pythonで学ぶモンテカルロ・シミュレーション

離散一様分布

理論的な確率質量関数(PMF): 離散一様分布の理論的 PMF

Pythonで学ぶモンテカルロ・シミュレーション

離散一様分布からのサンプリング

low = 3 
high = 21
samples = st.randint.rvs(low, high, size=1000)
samples_dict = {"nums":samples}
sns.histplot(x="nums", data=samples_dict, bins=6, binwidth=0.3)

離散一様分布のサンプル結果のグラフ

Pythonで学ぶモンテカルロ・シミュレーション

幾何分布

成功確率 $p$ の下で,1 回の成功を得るまでに要する試行回数 $X$ の分布。

確率質量関数(p = 0.5p = 0.5 の幾何分布の理論的 PMF

Pythonで学ぶモンテカルロ・シミュレーション

幾何分布

確率質量関数(p = 0.3p = 0.3 の幾何分布の理論的 PMF

Pythonで学ぶモンテカルロ・シミュレーション

幾何分布からのサンプリング

p = 0.2
samples = st.geom.rvs(p, size=1000)
samples_dict = {"nums":samples}
sns.histplot(x="nums", data=samples_dict)

幾何分布のサンプル結果のグラフ

Pythonで学ぶモンテカルロ・シミュレーション

その他の離散確率分布

  • ポアソン(scipy.stats.poisson
    • ある一定の時間・空間区間で起こる事象数の確率を表す
  • 二項(scipy.stats.binom
    • 独立試行 $n$ 回での成功回数の確率を表す
  • そのほか多数
1 https://docs.scipy.org/doc/scipy/reference/stats.html#discrete-distributions
Pythonで学ぶモンテカルロ・シミュレーション

実践してみましょう!

Pythonで学ぶモンテカルロ・シミュレーション

Preparing Video For Download...