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) = 1
。xk
和pk
必须有相同的形状。- 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 已经是一个Generator
或RandomState
实例,则使用该实例。
注意事项
这个类类似于
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()
随机数生成:
>>> R = custm.rvs(size=100)
- 属性
random_state
获取或设置用于生成随机变量的生成器对象。
方法:
给定类型的随机变量。
给定RV的k处的概率质量函数。
给定RV的k处的概率质量函数的对数。
给定房车的累积分布函数。
给定RV的k处的累积分布函数的对数。
生存函数(1- cdf )在给定RV的k处。
给定房车的生存函数的日志。
百分点数函数(与 cdf )在给定房车的Q。
逆生存函数(逆 sf )在给定房车的Q。
n阶非中心分布矩。
给定房车的一些统计数据。
房车的微分熵。
expect
\([func, args, loc, lb, ub, ...] )通过数值求和计算函数相对于离散分布分布的期望值。
分布的中位数。
分布的平均值。
分布的标准差。
分布的方差。
中位数附近面积相等的置信区间。
冻结给定参数的分布。
对发行版的支持。