在 Python 中繪製分位數圖

Muhammad Maisam Abbas 2023年1月30日 2021年10月2日
  1. 使用 Python 中的 statsmodels 包繪製分位數圖
  2. 使用 Python 中的 openturns 包繪製分位數-分位數圖
在 Python 中繪製分位數圖

本教程將介紹在 Python 中繪製分位數圖的方法。

使用 Python 中的 statsmodels 包繪製分位數圖

分位數-分位數圖用於評估我們的資料是否符合特定分佈。它可用於檢查給定資料集是否為正態分佈。我們可以使用 statsmodels 在 Python 中繪製分位數-分位數圖。下面給出了安裝 statsmodels 的命令。

pip install statsmodels

statsmodels 包中的 qqplot() 函式繪製分位數-分位數圖。這個函式需要我們的資料和要繪製的線的型別。以下程式碼片段向我們展示瞭如何使用 statsmodels 包繪製分位數-分位數圖。

import numpy as np
import statsmodels.api as smi
import pylab

sample_data = np.random.normal(0,1, 1000)

smi.qqplot(sample_data, line = "r")
pylab.show()

輸出:

帶有 statsmodels 包的 python qq 圖

在上面的程式碼中,我們使用 statsmodels 包中的 smi.qqplot(sample_data, line = "r") 函式繪製了分位數-分位數圖。我們使用 sample_data = np.random.normal(0,1, 1000) 函式生成了包含 1000 個條目的正常資料。最後,我們使用 pylab 包通過 pylab.show() 函式顯示我們的圖表。

這種方法使我們可以完全控制要繪製的參考線的型別。在上圖中,我們將參考線設定為迴歸線。

使用 Python 中的 openturns 包繪製分位數-分位數圖

在 Python 中繪製分位數-分位數圖的另一種方法是使用 openturns。它是一個外部包,因此我們需要先安裝它,然後才能在我們的程式碼中使用它。下面給出了安裝 openturns 軟體包的命令。

pip install openturns

VisualTest.DrawQQplot() 函式用於在 openturns 包內繪製分位數-分位數圖。這個函式的第一個引數需要是樣本資料;第二個引數可以是另一個樣本資料,也可以是一個分佈,然後是另一個指定點數的第三個引數。對於此示例,我們將針對均勻分佈樣本繪製正態分佈樣本。以下程式碼片段向我們展示瞭如何使用 openturns 包繪製分位數-分位數圖。

import openturns as ot

x = ot.Normal().getSample(1000000)
y = ot.Uniform().getSample(1000000)
g = ot.VisualTest.DrawQQplot(x, y)
g

輸出:

帶有 openturns 包的 python qq 圖

在上面的程式碼中,我們使用 openturns 包中的 VisualTest.DrawQQplot(x, y) 函式測試了來自正態分佈的樣本與來自均勻分佈的樣本。我們從包含一百萬個條目的正態分佈中生成了樣本資料,其中包含 x = ot.Normal().getSample(1000000)。我們從包含一百萬個條目的均勻分佈中生成我們的樣本資料,其中 y = ot.Uniform().getSample(1000000)

此方法不提供對參考/測試線的控制。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Python Graph