scipy.stats.

均匀分布#

class scipy.stats.Uniform(*, a=None, b=None, **kwargs)[源代码]#

均匀分布。

均匀分布的概率密度函数为

\[f(x; a, b) = \frac{1} {b - a}\]

对于 \(x\) 在 [a, b] 中。此类接受一个参数化:a 表示 \(a \in (-\infty, \infty)\)b 表示 \(b \in (a, \infty)\)

参数:
tol正浮点数,可选

计算所需的相对容差。如果未指定,计算速度可能会更快;如果提供,计算结果可能更可能满足所需的精度。

validation_policy{None, “skip_all”}

指定要执行的输入验证级别。如果未指定,将执行输入验证,以确保在边缘情况下(例如,参数超出域,参数超出分布支持等)的适当行为,并提高输出 dtype、形状等的一致性。传递 'skip_all' 以避免在可以接受粗糙边缘时进行这些检查的计算开销。

cache_policy{None, “no_cache”}

指定中间结果的缓存程度。如果未指定,某些计算(例如,分布支持、矩等)的中间结果会被缓存,以提高未来计算的性能。传递 'no_cache' 以减少类实例保留的内存。

另请参阅

随机变量转换指南

教程

注释

在整个文档中使用以下缩写。

  • PDF:概率密度函数

  • CDF:累积分布函数

  • CCDF:互补累积分布函数

  • entropy:微分熵

  • log-FF 的对数 (例如 log-CDF)

  • inverse FF 的反函数(例如,反 CDF)

API 文档旨在描述 API,而不是作为统计参考。我们努力在需要使用功能的级别上做到正确,而不是在数学上严格。例如,可能会隐式假设连续性和可微性。有关精确的数学定义,请查阅您首选的数学文本。

示例

要使用分布类,必须使用与接受的参数化之一对应的关键字参数进行实例化。

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy import stats
>>> from scipy.stats import Uniform
>>> X = Uniform(a=0.09, b=188.73)

为方便起见,可以使用 plot 方法来可视化分布的密度和其他函数。

>>> X.plot()
>>> plt.show()
../../_images/scipy-stats-Uniform-1_00_00.png

可以使用 support 方法获得底层分布的支持。

>>> X.support()
(0.09, 188.73)

与所有参数化关联的参数的数值可以作为属性使用。

>>> X.a, X.b, X.ab
(0.09, 188.73, 188.64)

要评估底层分布在参数 x=60.45 处的概率密度函数

>>> x = 60.45
>>> X.pdf(x)
0.005301102629346905

累积分布函数、其补函数和这些函数的对数以类似的方式进行评估。

>>> np.allclose(np.exp(X.logccdf(x)), 1 - X.cdf(x))
True

这些函数关于参数 x 的反函数也可用。

>>> logp = np.log(1 - X.ccdf(x))
>>> np.allclose(X.ilogcdf(logp), x)
True

请注意,分布函数及其对数还具有用于处理两个参数之间的概率质量的双参数版本。结果往往比简单的实现更准确,因为它避免了减法抵消。

>>> y = 120.82
>>> np.allclose(X.ccdf(x, y), 1 - (X.cdf(y) - X.cdf(x)))
True

有用于计算集中趋势、离散程度、更高阶矩和熵的方法。

>>> X.mean(), X.median(), X.mode()
(94.41, 94.41, 94.41)
>>> X.variance(), X.standard_deviation()
(2965.4208, 54.4556773899655)
>>> X.skewness(), X.kurtosis()
(1.4418186690070737e-15, 1.7999999999999878)
>>> np.allclose(X.moment(order=6, kind='standardized'),
...             X.moment(order=6, kind='central') / X.variance()**3)
True
>>> np.allclose(np.exp(X.logentropy()), X.entropy())
True

可以使用 sample 从底层分布中抽取伪随机样本。

>>> X.sample(shape=(4,))
array([156.56241121,   4.74906191, 187.80175725,  49.83554959])  # may vary
属性:
所有参数都可用作属性。

方法

support()

随机变量的支持

plot([x, y, t, ax])

绘制分布的函数。

sample([shape, method, rng])

从分布中随机抽样。

moment([order, kind, method])

正整数阶的原始矩、中心矩或标准矩。

mean(*[, method])

均值(关于原点的原始一阶矩)

median(*[, method])

中位数(第 50 个百分位数)

mode(*[, method])

众数(最可能的值)

variance(*[, method])

方差(中心二阶矩)

standard_deviation(*[, method])

标准差(中心二阶矩的平方根)

skewness(*[, method])

偏度(标准化三阶矩)

kurtosis(*[, method, convention])

峰度(标准化四阶矩)

pdf(x, /, *[, method])

概率密度函数

logpdf(x, /, *[, method])

概率密度函数的对数

cdf(x[, y, method])

累积分布函数

icdf(p, /, *[, method])

累积分布函数的反函数。

ccdf(x[, y, method])

互补累积分布函数

iccdf(p, /, *[, method])

互补累积分布函数的反函数。

logcdf(x[, y, method])

累积分布函数的对数

ilogcdf(logp, /, *[, method])

累积分布函数对数的反函数。

logccdf(x[, y, method])

互补累积分布函数的对数

ilogccdf(logp, /, *[, method])

互补累积分布函数对数的反函数。

entropy(*[, method])

微分熵

logentropy(*[, method])

微分熵的对数