scipy.stats.rv_discrete

class scipy.stats.rv_discrete(a=0, b=inf, name=None, badvalue=None, moment_tol=1e-08, values=None, inc=1, longname=None, shapes=None, extradoc=None, seed=None)[源代码]

用于子类化的通用离散随机变量类。

rv_discrete 是构造离散随机变量的特定分布类和实例的基类。它还可以用来构造由支撑点列表和相应概率定义的任意分布。

参数
a浮动,可选

分布支持下限,默认值:0

b浮动,可选

分布支持的上限,默认值:加无穷

moment_tol浮动,可选

常规计算力矩的公差。

values两个数组的元组_LIKE,可选

(xk, pk) 哪里 xk 是整数,并且 pk 是介于0和1之间的非零概率吗? sum(pk) = 1xkpk 必须有相同的形状。

inc整数,可选

用于支持分发的增量。默认值为1。(未测试其他值)

badvalue浮动,可选

结果数组中的值,指示违反某些参数限制的值,默认值为np.nan。

name字符串,可选

实例的名称。此字符串用于构造分发的默认示例。

longname字符串,可选

当子类没有自己的docstring时,此字符串用作返回的docstring的第一行的一部分。注: longname 存在是为了向后兼容,不要用于新的子类。

shapes字符串,可选

分布的形状。例如,对于采用两个整数作为其所有方法的两个形状自变量的分布来说,如果没有提供,形状参数将从私有方法的签名中推断出来, _pmf_cdf 实例的。

extradoc字符串,可选

当子类没有自己的docstring时,此字符串用作返回的docstring的最后部分。注: extradoc 存在是为了向后兼容,不要用于新的子类。

seed :{无,整型, numpy.random.Generator{无,整型,

如果 seed 为无(或 np.random )、 numpy.random.RandomState 使用的是Singleton。如果 seed 是一个整型、一个新的 RandomState 实例,其种子设定为 seed 。如果 seed 已经是一个 GeneratorRandomState 实例,则使用该实例。

注意事项

这个类类似于 rv_continuous. Whether a shape parameter is valid is decided by an ``_ argcheck``方法(默认情况下检查其参数是否严格为正)。主要区别在于:

  • 分布的支持是一组整数

  • 代替概率密度函数, pdf (以及相应的私有 _pdf ),该类定义了 概率质量函数pmf (and the corresponding private _ pmf。)

  • 未定义缩放参数。

要创建新的离散分布,我们将执行以下操作:

>>> from scipy.stats import rv_discrete
>>> class poisson_gen(rv_discrete):
...     "Poisson distribution"
...     def _pmf(self, k, mu):
...         return exp(-mu) * mu**k / factorial(k)

并创建一个实例::

>>> poisson = poisson_gen(name="poisson")

请注意,上面我们以标准形式定义了泊松分布。移动分布可以通过提供 loc 参数添加到实例的方法。例如, poisson.pmf(x, mu, loc) 将工作委托给 poisson._pmf(x-loc, mu)

概率列表中的离散分布

或者,您可以构造定义在一组有限值上的任意离散RV xk 使用 Prob{{X=xk}} = pk 通过使用 values 关键字参数设置为 rv_discrete 构造函数。

示例

定制离散分发:

>>> from scipy import stats
>>> xk = np.arange(7)
>>> pk = (0.1, 0.2, 0.3, 0.1, 0.1, 0.0, 0.2)
>>> custm = stats.rv_discrete(name='custm', values=(xk, pk))
>>>
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
>>> ax.plot(xk, custm.pmf(xk), 'ro', ms=12, mec='r')
>>> ax.vlines(xk, 0, custm.pmf(xk), colors='r', lw=4)
>>> plt.show()
../../_images/scipy-stats-rv_discrete-1_00_00.png

随机数生成:

>>> R = custm.rvs(size=100)
属性
random_state

获取或设置用于生成随机变量的生成器对象。

方法:

rvs \(*args, * *kwargs)

给定类型的随机变量。

pmf \(K,*args, * *kwds)

给定RV的k处的概率质量函数。

logpmf \(K,*args, * *kwds)

给定RV的k处的概率质量函数的对数。

cdf \(K,*args, * *kwds)

给定房车的累积分布函数。

logcdf \(K,*args, * *kwds)

给定RV的k处的累积分布函数的对数。

sf \(K,*args, * *kwds)

生存函数(1- cdf )在给定RV的k处。

logsf \(K,*args, * *kwds)

给定房车的生存函数的日志。

ppf \(q,*args, * *kwds)

百分点数函数(与 cdf )在给定房车的Q。

isf \(q,*args, * *kwds)

逆生存函数(逆 sf )在给定房车的Q。

moment \(n,*args, * *kwds)

n阶非中心分布矩。

stats \(*args, * *kwds)

给定房车的一些统计数据。

entropy \(*args, * *kwds)

房车的微分熵。

expect \([func, args, loc, lb, ub, ...] )

通过数值求和计算函数相对于离散分布分布的期望值。

median \(*args, * *kwds)

分布的中位数。

mean \(*args, * *kwds)

分布的平均值。

std \(*args, * *kwds)

分布的标准差。

var \(*args, * *kwds)

分布的方差。

interval \(字母,*args, * *kwds)

中位数附近面积相等的置信区间。

__call__ \(*args, * *kwds)

冻结给定参数的分布。

support \(*args, * *kwargs)

对发行版的支持。