numpy.random.Generator.laplace#
方法
- random.Generator.laplace(loc=0.0, scale=1.0, size=None)#
從 Laplace 或雙指數分佈中抽取樣本,並指定位置(或平均值)和尺度(衰減)。
Laplace 分佈與高斯/常態分佈相似,但在峰值處更尖銳,尾部更肥厚。它表示兩個獨立、恆等分佈的指數隨機變數之間的差異。
- 參數:
- locfloat 或 float 的類陣列,選用
分佈峰值的位置,\(\mu\)。預設值為 0。
- scalefloat 或 float 的類陣列,選用
\(\lambda\),指數衰減。預設值為 1。必須為非負數。
- sizeint 或 int 元組,選用
輸出形狀。如果給定的形狀為,例如,
(m, n, k)
,則會抽取m * n * k
個樣本。如果 size 為None
(預設值),如果loc
和scale
都是純量,則會傳回單一值。否則,會抽取np.broadcast(loc, scale).size
個樣本。
- 傳回:
- outndarray 或 純量
從參數化的 Laplace 分佈中抽取的樣本。
註解
它具有機率密度函數
\[f(x; \mu, \lambda) = \frac{1}{2\lambda} \exp\left(-\frac{|x - \mu|}{\lambda}\right).\]拉普拉斯在 1774 年提出的第一定律指出,誤差的頻率可以用誤差絕對值的指數函數表示,這導致了 Laplace 分佈。對於經濟學和健康科學中的許多問題,此分佈似乎比標準高斯分佈更能模擬資料。
參考文獻
[1]Abramowitz, M. 和 Stegun, I. A. (Eds.). “Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables, 9th printing,” New York: Dover, 1972.
[2]Kotz, Samuel, et. al. “The Laplace Distribution and Generalizations, “ Birkhauser, 2001.
[3]Weisstein, Eric W. “Laplace Distribution.” From MathWorld–A Wolfram Web Resource. https://mathworld.wolfram.com/LaplaceDistribution.html
[4]Wikipedia, “Laplace distribution”, https://en.wikipedia.org/wiki/Laplace_distribution
範例
從分佈中抽取樣本
>>> loc, scale = 0., 1. >>> rng = np.random.default_rng() >>> s = rng.laplace(loc, scale, 1000)
顯示樣本的直方圖,以及機率密度函數
>>> import matplotlib.pyplot as plt >>> count, bins, _ = plt.hist(s, 30, density=True) >>> x = np.arange(-8., 8., .01) >>> pdf = np.exp(-abs(x-loc)/scale)/(2.*scale) >>> plt.plot(x, pdf)
繪製高斯分佈以進行比較
>>> g = (1/(scale * np.sqrt(2 * np.pi)) * ... np.exp(-(x - loc)**2 / (2 * scale**2))) >>> plt.plot(x,g)