在 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
包中的 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
包中的 VisualTest.DrawQQplot(x, y)
函式測試了來自正態分佈的樣本與來自均勻分佈的樣本。我們從包含一百萬個條目的正態分佈中生成了樣本資料,其中包含 x = ot.Normal().getSample(1000000)
。我們從包含一百萬個條目的均勻分佈中生成我們的樣本資料,其中 y = ot.Uniform().getSample(1000000)
。
此方法不提供對參考/測試線的控制。
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