本文簡要介紹 python 語言中 scipy.stats.probplot
的用法。
用法:
scipy.stats.probplot(x, sparams=(), dist='norm', fit=True, plot=None, rvalue=False)#
計算概率圖的分位數,並可選擇顯示該圖。
生成樣本數據相對於指定理論分布(默認為正態分布)的分位數的概率圖。
probplot
可選擇計算數據的 best-fit 線,並使用 Matplotlib 或給定繪圖函數繪製結果。- x: array_like
probplot
創建繪圖的樣本/響應數據。- sparams: 元組,可選
Distribution-specific 形狀參數(形狀參數加上位置和比例)。
- dist: str 或 stats.distributions 實例,可選
分布或分布函數名稱。對於正態概率圖,默認值為 ‘norm’。看起來足夠像 stats.distributions 實例的對象(即它們具有
ppf
方法)也被接受。- fit: 布爾型,可選
如果為 True(默認),則將最小二乘回歸 (best-fit) 線擬合到樣本數據。
- plot: 對象,可選
如果給定,則繪製分位數。如果給出並且scipy.stats.fit為真,也繪製最小二乘擬合。陰謀是一個必須具有方法 “plot” 和 “text” 的對象。這
matplotlib.pyplot
可以使用模塊或 Matplotlib Axes 對象,或具有相同方法的自定義對象。默認為無,這意味著不創建繪圖。- rvalue: 布爾型,可選
如果陰謀提供和scipy.stats.fit為 True,設置右值to True 包括繪圖上的決定係數。默認值為 False。
- (osm, osr): ndarray 的元組
理論分位數(osm,或順序統計中位數)和有序響應(osr)的元組。 osr 是簡單排序的輸入 x。有關如何計算 osm 的詳細信息,請參閱注釋部分。
- (slope, intercept, r): 浮點數元組,可選
包含最小二乘擬合結果的元組(如果由以下方法執行)
probplot
.r是決定係數的平方根。如果fit=False
和plot=None
,這個元組不返回。
參數 ::
返回 ::
注意:
即使陰謀給出,該圖不顯示或保存
probplot
;plt.show()
或者plt.savefig('figname.png')
應該在調用後使用probplot
.probplot
生成概率圖,不應與 Q-Q 或 P-P 圖混淆。 Statsmodels 具有更廣泛的此類函數,請參閱statsmodels.api.ProbPlot
。用於理論分位數的公式(概率圖的橫軸)是 Filliben 的估計:
quantiles = dist.ppf(val), for 0.5**(1/n), for i = n val = (i - 0.3175) / (n + 0.365), for i = 2, ..., n-1 1 - 0.5**(1/n), for i = 1
其中
i
表示i-th有序值,n
是值的總數。例子:
>>> import numpy as np >>> from scipy import stats >>> import matplotlib.pyplot as plt >>> nsample = 100 >>> rng = np.random.default_rng()
具有小自由度的 t 分布:
>>> ax1 = plt.subplot(221) >>> x = stats.t.rvs(3, size=nsample, random_state=rng) >>> res = stats.probplot(x, plot=plt)
具有較大自由度的 t 分布:
>>> ax2 = plt.subplot(222) >>> x = stats.t.rvs(25, size=nsample, random_state=rng) >>> res = stats.probplot(x, plot=plt)
兩個正態分布與廣播的混合:
>>> ax3 = plt.subplot(223) >>> x = stats.norm.rvs(loc=[0,5], scale=[1,1.5], ... size=(nsample//2,2), random_state=rng).ravel() >>> res = stats.probplot(x, plot=plt)
標準正態分布:
>>> ax4 = plt.subplot(224) >>> x = stats.norm.rvs(loc=0, scale=1, size=nsample, random_state=rng) >>> res = stats.probplot(x, plot=plt)
使用
dist
和sparams
關鍵字生成具有對數伽瑪分布的新圖形:>>> fig = plt.figure() >>> ax = fig.add_subplot(111) >>> x = stats.loggamma.rvs(c=2.5, size=500, random_state=rng) >>> res = stats.probplot(x, dist=stats.loggamma, sparams=(2.5,), plot=ax) >>> ax.set_title("Probplot for loggamma dist with shape parameter 2.5")
使用 Matplotlib 顯示結果:
>>> plt.show()
相關用法
- Python SciPy stats.page_trend_test用法及代碼示例
- Python SciPy stats.poisson用法及代碼示例
- Python SciPy stats.poisson_means_test用法及代碼示例
- Python SciPy stats.pareto用法及代碼示例
- Python SciPy stats.planck用法及代碼示例
- Python SciPy stats.ppcc_plot用法及代碼示例
- Python SciPy stats.pointbiserialr用法及代碼示例
- Python SciPy stats.powerlognorm用法及代碼示例
- Python SciPy stats.ppcc_max用法及代碼示例
- Python SciPy stats.pmean用法及代碼示例
- Python SciPy stats.powerlaw用法及代碼示例
- Python SciPy stats.power_divergence用法及代碼示例
- Python SciPy stats.powernorm用法及代碼示例
- Python SciPy stats.pearson3用法及代碼示例
- Python SciPy stats.pearsonr用法及代碼示例
- Python SciPy stats.percentileofscore用法及代碼示例
- Python SciPy stats.permutation_test用法及代碼示例
- Python SciPy stats.anderson用法及代碼示例
- Python SciPy stats.iqr用法及代碼示例
- Python SciPy stats.genpareto用法及代碼示例
- Python SciPy stats.skewnorm用法及代碼示例
- Python SciPy stats.cosine用法及代碼示例
- Python SciPy stats.norminvgauss用法及代碼示例
- Python SciPy stats.directional_stats用法及代碼示例
- Python SciPy stats.invwishart用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.stats.probplot。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。