scipy.stats.

二项分布#

class scipy.stats.Binomial(*, n, p, **kwargs)[source]#

具有规定成功概率和试验次数的二项分布

二项分布的概率密度函数为

\[f(x) = {n \choose x} p^x (1 - p)^{n-x}\]

对于 \(x \in \{0, 1, ..., n - 1, n\}\)。该类接受一个参数化:n 用于 \(n \in \{0, 1, 2, ...\}\)p 用于 \(p \in (0, 1)\)

参数:
tol正浮点数,可选

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

validation_policy{None, “skip_all”}

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

cache_policy{None, “no_cache”}

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

属性:
所有参数都可作为属性使用。

方法

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])

微分熵的对数

另请参阅

随机变量转换指南

教程

说明

以下缩写用于整个文档。

  • PDF:概率密度函数

  • CDF:累积分布函数

  • CCDF:互补 CDF

  • 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 Binomial
>>> X = Binomial(n=10.0, p=0.34)

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

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

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

>>> X.support()
(np.float64(0.0), np.float64(10.0))

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

>>> X.n, X.p
(np.float64(10.0), np.float64(0.34))

要在参数 x=3.0 处评估底层分布的概率密度/质量函数

>>> x = 3.0
>>> X.pdf(x), X.pmf(x)
(np.float64(inf), np.float64(0.2572915634331659))

累积分布函数、它的补集以及这些函数的对数的评估方式类似。

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

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

>>> X.mean(), X.median(), X.mode()
(np.float64(3.4000000000000004), np.float64(3.0), np.float64(3.0))
>>> X.variance(), X.standard_deviation()
(np.float64(2.2439999999999998), np.float64(1.4979986648859203))
>>> X.skewness(), X.kurtosis()
(np.float64(0.21361834793382106), np.float64(2.845632798573975))
>>> np.allclose(X.moment(order=6, kind='standardized'),
...             X.moment(order=6, kind='central') / X.variance()**3)
True
>>> X.entropy()
1.816303869320522

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

>>> X.sample(shape=(4,))
array([2., 2., 6., 4.])  # may vary