如何在Python中建立泊松機率質量函式圖?


泊松分佈是一種機率分佈,它在給定平均發生率的情況下,對固定時間或空間間隔內事件的發生進行建模。它通常用於物理學、工程學和經濟學等領域,對粒子的到達、元件的故障或客戶的到達進行建模。

視覺化泊松分佈的一種方法是繪製其機率質量函式 (PMF),它顯示了給定區間內可能發生的每個事件數的機率。在 Python 中,我們可以使用 SciPy 庫生成泊松分佈的 PMF,然後使用 Matplotlib 繪製它。

在本文中,我們將探討如何使用 SciPy 和 Matplotlib 在 Python 中建立泊松 PMF 圖。我們將為泊松引數的不同值生成 PMF,並使用條形圖視覺化結果。

現在讓我們討論一下我們可以用來建立泊松機率質量函式的不同方法。

  • 使用 Scipy 庫:Scipy 是一個流行的科學計算庫,其中包含用於生成和視覺化機率分佈的函式。

  • 使用 NumPy 和 Matplotlib:NumPy 是 Python 的科學計算庫,其中包含用於生成隨機數陣列的函式。

在本文中,我們將透過示例討論這兩種方法。

使用 scipy 庫

請考慮以下程式碼。

示例

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

# Set the Poisson parameter and the range of k values
lam = 2
k_values = np.arange(0, 11)

# Calculate the PMF using the Scipy library
pmf_values = poisson.pmf(k_values, lam)

# Plot the PMF using Matplotlib
plt.plot(k_values, pmf_values, 'bo-', linewidth=2)
plt.xlabel('Number of events')
plt.ylabel('Probability')
plt.title('Poisson PMF (lambda=2)')
plt.grid(True)
plt.show()

解釋

  • 我們首先匯入必要的庫:NumPy、Scipy 和 Matplotlib。

  • 我們將泊松引數 lambda 設定為 2,它定義了泊松分佈中事件發生的速率。

  • 我們定義了從 0 到 10 的 k 值範圍,它們代表事件的數量。

  • 我們使用 Scipy 庫中的 poisson.pmf() 函式計算給定 lambda 和 k 值的 PMF 值。

  • 我們使用 Matplotlib 的 plt.plot() 函式繪製 PMF 值,使用藍色圓圈 ('bo-') 作為標記,線寬為 2。我們還添加了 x 軸、y 軸和繪圖示題的標籤,以及一個網格以幫助視覺化。

  • 最後,我們使用 plt.show() 函式顯示繪圖。

要執行以下程式碼,我們首先需要安裝 scipy 庫,為此我們可以執行以下命令。

命令

pip3 install scipy

現在執行以下命令。

python3 main.py

輸出

使用 numPy 和 Matplotlib

請考慮以下程式碼。

示例

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

# Define the Poisson distribution parameter lambda
lam = 3

# Create an array of x values
x = np.arange(0, 15).tolist()

# Create the Poisson probability mass function
pmf = poisson.pmf(x, lam)

# Create the plot
plt.plot(x, pmf, 'bo', ms=8)
plt.vlines(x, 0, pmf, colors='b', lw=5)
plt.title('Poisson Probability Mass Function')
plt.xlabel('Number of events')
plt.ylabel('Probability')
plt.show()

解釋

  • 程式碼首先匯入必要的庫,包括 NumPy 和 Matplotlib。

  • 定義了一個 lambda 函式來計算泊松分佈的機率質量函式。

  • 設定了 lambda 值和 k 值範圍。

  • 使用前面定義的 lambda 函式,使用 lambda 值和 k 範圍計算機率質量函式。

  • 使用 Matplotlib 庫建立使用 k 和機率值的線圖。

  • 設定 x 軸和 y 軸標籤,併為繪圖定義標題。

  • 呼叫 show() 方法以顯示繪圖。

輸出

結論

總之,泊松機率質量函式 (PMF) 圖是用於理解在時間或空間中隨機發生的事件的機率分佈的有用視覺化工具。本文提供了兩種在 Python 中建立泊松 PMF 圖的方法。

第一種方法使用了 scipy 庫,而第二種方法使用了 NumPy 和 Matplotlib 庫。兩種方法都涉及定義泊松分佈引數、計算機率質量函式以及使用適當的庫繪製函式。方法的選擇取決於使用者對庫的熟悉程度和具體的用例要求。

更新於: 2023年8月3日

1K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.