maxframe.tensor.random.pareto#

maxframe.tensor.random.pareto(a, size=None, chunk_size=None, gpu=None, dtype=None)[源代码]#

从具有指定形状的帕累托 II 或 Lomax 分布中抽取样本。

Lomax 或帕累托 II 分布是帕累托分布的平移版本。通过将 Lomax 分布加 1 并乘以尺度参数 m (见注释) 可以得到经典的帕累托分布。Lomax 分布的最小值为零,而经典帕累托分布的最小值为 mu,其中标准帕累托分布的位置参数为 mu = 1。Lomax 也可以看作是广义帕累托分布 (在 SciPy 中可用) 的简化版本,其尺度设为 1,位置设为 0。

帕累托分布必须大于零,并且无上界。它也被称为“80-20法则”。在此分布中,80% 的权重分布在最低 20% 的范围内,而其余 20% 则填满了剩余的 80% 范围。

参数:
  • a (float or array_like of floats) -- 分布的形状参数。应大于零。

  • size (int or tuple of ints, optional) -- 输出形状。如果给定的形状是,例如 (m, n, k),那么会抽取 m * n * k 个样本。如果 size 是 None (默认),当 a 是标量时返回单个值。否则,抽取 mt.array(a).size 个样本。

  • chunk_size (int or tuple of int or tuple of ints, optional) -- 每个维度上期望的块大小

  • gpu (bool, optional) -- 如果为 True,则将张量分配在 GPU 上,默认为 False

  • dtype (data-type, optional) -- 返回张量的数据类型。

返回:

out -- 从参数化的帕累托分布中抽取的样本。

返回类型:

Tensor or scalar

参见

scipy.stats.lomax

概率密度函数、分布或累积密度函数等。

scipy.stats.genpareto

概率密度函数、分布或累积密度函数等。

备注

帕累托分布的概率密度为

\[p(x) = \frac{am^a}{x^{a+1}}\]

其中 \(a\) 是形状参数,\(m\) 是尺度参数。

帕累托分布以意大利经济学家维尔弗雷多·帕累托命名,是一种幂律概率分布在许多现实世界问题中都有用。经济学领域之外,它通常被称为布拉德福分布。帕累托提出该分布是为了描述经济中的财富分布。它还被应用于保险、网页访问统计、油田规模以及许多其他问题中,包括 Sourceforge 项目下载频率 [1]。它是所谓的“厚尾”分布之一。

引用

示例

从分布中抽取样本:

>>> import maxframe.tensor as mt
>>> a, m = 3., 2.  # shape and mode
>>> s = (mt.random.pareto(a, 1000) + 1) * m

显示样本的直方图以及概率密度函数:

>>> import matplotlib.pyplot as plt
>>> count, bins, _ = plt.hist(s.execute(), 100, normed=True)
>>> fit = a*m**a / bins**(a+1)
>>> plt.plot(bins, max(count)*fit/max(fit), linewidth=2, color='r')
>>> plt.show()