做者|Satyam Kumar
編譯|VK
來源|Towards Data Sciencepython
Q-Q圖是檢驗任何隨機變量(如正態分佈、指數分佈、對數正態分佈等)分佈的圖形方法,是觀察任何分佈性質的一種統計方法。app
例如,若是給定的一個分佈須要驗證它是不是正態分佈,咱們運行統計分析並將未知分佈與已知正態分佈進行比較。而後經過觀察Q-Q圖的結果,咱們能夠肯定給定的分佈是否正態分佈。dom
給定一個隨機分佈,須要驗證它是否爲正態/高斯分佈。爲了便於理解,咱們將這個未知分佈命名爲X,將已知的正態分佈命名爲Y。機器學習
X = np.random.normal(loc=50, scale=25, size=1000)
咱們正在生成一個正態分佈,有1000個值,平均值=50,標準差=25。學習
查找1%~100%:spa
X_100 = [] for i in range(1,101): X_100.append(np.percentile(X, i))
計算每一個百分位數(1%,2%,3%,. . .,99%,100%)X的隨機分佈值,並將其存儲在X_100中。.net
Y = np.random.normal(loc=0, scale=1, size=1000)
生成一個正態分佈,其平均值爲0,標準誤差爲1,須要與未知分佈X進行比較,以驗證X分佈是否正態分佈。code
Y_100 = [] for i in range(101): Y_100.append(np.percentile(Y, i))
計算每一個百分位數(1%,2%,3%,. . .,99%,100%)Y的隨機分佈值,並將其存儲在Y_100中。orm
爲以上得到的未知分佈值繪製散點圖。blog
這裏X是未知分佈,要與Y這個正態分佈相比。
對於Q-Q圖,若是圖中的散點在一條直線上,則兩個隨機變量具備相同的分佈,不然它們具備不一樣的分佈。
從上面的Q-Q圖能夠看出X是正態分佈的。
若是X不是正態分佈,而且它有其餘分佈,那麼若是Q-Q圖是在X和正態分佈之間繪製的,那麼散射點就不會在一條直線上。
這裏,X分佈是對數正態分佈,所以Q-Q圖中的散射點不是直線。
這是4個不一樣條件下X和Y分佈的Q-Q圖。
import numpy as np import matplotlib.pyplot as plt X = np.random.normal(loc=50, scale=25, size=1000) X_100 = [] for i in range(1,101): X_100.append(np.percentile(X, i)) Y = np.random.normal(loc=0, scale=1, size=1000) Y_100 = [] for i in range(1,101): Y_100.append(np.percentile(Y, i)) plt.scatter(X_100, Y_100) plt.grid() plt.ylabel("Y - normal distribution") plt.xlabel("X - normal distribution") plt.show()
Q-Q圖能夠用來比較任意兩個分佈,而且能夠經過與已知分佈的比較來驗證未知分佈。這種方法有一個主要的侷限性,即須要大量的數據點,由於得出較少的數據不是明智的決定。經過觀察Q-Q圖能夠預測這兩種分佈是否相同。
原文連接:https://towardsdatascience.co...
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方文檔:
http://sklearn123.com/
歡迎關注磐創博客資源彙總站:
http://docs.panchuang.net/