numpy.random.pareto#
- random.pareto(a, size=None)#
從具有指定形狀的 Pareto II 或 Lomax 分佈中抽取樣本。
Lomax 或 Pareto II 分佈是一種位移的 Pareto 分佈。經典 Pareto 分佈可以從 Lomax 分佈通過加 1 並乘以比例參數
m
獲得(請參閱「註解」)。Lomax 分佈的最小值為零,而經典 Pareto 分佈的最小值為mu
,其中標準 Pareto 分佈的位置mu = 1
。Lomax 也可以被視為廣義 Pareto 分佈(在 SciPy 中可用)的簡化版本,其比例設定為 1,位置設定為零。Pareto 分佈必須大於零,且上方無界。它也被稱為「80-20 法則」。在這個分佈中,80% 的權重位於範圍的最低 20% 內,而另外 20% 則填充範圍的剩餘 80%。
- 參數:
- a浮點數或浮點數的類陣列
分佈的形狀。必須為正數。
- size整數或整數元組,選填
輸出形狀。如果給定的形狀為,例如,
(m, n, k)
,則會抽取m * n * k
個樣本。如果 size 為None
(預設值),則當a
是純量時,會傳回單一值。否則,會抽取np.array(a).size
個樣本。
- 傳回值:
- outndarray 或純量
從參數化的 Pareto 分佈中抽取的樣本。
另請參閱
scipy.stats.lomax
機率密度函數,分佈或累積密度函數等。
scipy.stats.genpareto
機率密度函數,分佈或累積密度函數等。
random.Generator.pareto
新程式碼應使用的方法。
註解
Pareto 分佈的機率密度為
\[p(x) = \frac{am^a}{x^{a+1}}\]其中 \(a\) 是形狀,而 \(m\) 是比例。
Pareto 分佈以義大利經濟學家 Vilfredo Pareto 的名字命名,是一種冪律機率分佈,在許多現實世界問題中都很有用。在經濟學領域之外,它通常被稱為 Bradford 分佈。Pareto 開發此分佈來描述經濟體系中財富的分配。它也已應用於保險、網頁存取統計、油田規模和許多其他問題,包括 Sourceforge 中專案的下載頻率 [1]。它是所謂的「肥尾」分佈之一。
參考文獻
[1]Francis Hunt 和 Paul Johnson,關於 Sourceforge 專案的 Pareto 分佈。
[2]Pareto, V. (1896)。政治經濟學課程。洛桑。
[3]Reiss, R.D.,Thomas, M.(2001),極端值統計分析,Birkhauser Verlag,巴塞爾,第 23-30 頁。
[4]維基百科,「Pareto 分佈」,https://en.wikipedia.org/wiki/Pareto_distribution
範例
從分佈中抽取樣本
>>> a, m = 3., 2. # shape and mode >>> s = (np.random.pareto(a, 1000) + 1) * m
顯示樣本的直方圖,以及機率密度函數
>>> import matplotlib.pyplot as plt >>> count, bins, _ = plt.hist(s, 100, density=True) >>> fit = a*m**a / bins**(a+1) >>> plt.plot(bins, max(count)*fit/max(fit), linewidth=2, color='r') >>> plt.show()