產生離散型隨機變數

Python 的 Monte Carlo 模擬

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 的 Monte Carlo 模擬

離散型均勻分配

理論機率質量函式(PMF): 離散型均勻分配的理論機率質量函式

Python 的 Monte Carlo 模擬

從離散型均勻分配抽樣

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 的 Monte Carlo 模擬

幾何分配

在成功機率為 $p$ 下,取得首次成功所需試驗次數 $X$ 的機率分配。

機率質量函式,p = 0.5 p = 0.5 的幾何分配理論機率質量函式

Python 的 Monte Carlo 模擬

幾何分配

機率質量函式,p = 0.3 p = 0.3 的幾何分配理論機率質量函式

Python 的 Monte Carlo 模擬

從幾何分配抽樣

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

幾何分配的抽樣結果圖

Python 的 Monte Carlo 模擬

更多離散機率分配

  • Poisson(scipy.stats.poisson
    • 表示在固定時間或空間區間內,出現某事件次數的機率。
  • Binomial(scipy.stats.binom
    • 表示在 $n$ 次獨立試驗中成功次數的機率。
  • 還有更多!
1 https://docs.scipy.org/doc/scipy/reference/stats.html#discrete-distributions
Python 的 Monte Carlo 模擬

一起來練習吧!

Python 的 Monte Carlo 模擬

Preparing Video For Download...