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%。

註解

新程式碼應改用 pareto 方法,此方法屬於 Generator 實例;請參閱快速入門

參數:
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()
../../../_images/numpy-random-pareto-1.png