二项分布#
- 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-F:F 的对数(例如,log-CDF)
inverse F:F 的逆函数(例如,逆 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()
可以使用
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