如果我使用 scipy.stats.rv_discrete
手动创建离散随机变量,我可以通过提供下限,上限和增量(虽然后者是tested only for 1)来控制其支持(它可以获得的可能值),或者通过提供具体的 values
论点 .
这些方法实际上并不构造随机变量,而是构造一个离散分布,通过调用它可以从中构造一个随机变量 . 给定一个随机变量,它是通过给出具体的 values=
构造的分布构造的,我可以通过检查 rv.dist.xk
找出它的支持(事实上,这还不够;如果 values=
包含零概率,我们应该检查 rv.dist.xk
和 rv.dist.pk
从支持中丢弃零概率值) . 但是,这种方法不适用于我们尚未定义且未使用 values=
方法定义的一般离散随机变量 .
是否有一般方法可以返回离散随机变量的支持集? single method 适用于使用 rv_discrete
生成的所有离散随机变量以及 scipy.stats
模块中定义的那些,例如 randint
?
1 回答
我们可以从scipy.stats.distribution的逆cdf,
ppf
获得分布支持的下限和上限 .根据定义,
ppf(0)
返回cdf为零的最大整数,因此下限大1 .如果我没记错的话,那么代码不会检查用户是否为使用
(xk, pk)
的用户明确定义的离散分布添加了零概率事件 .分发具有
.a
和.b
属性,用于定义下限 . 但是,如果支持取决于参数,则显示已设置的 the bounds of the last call . 这些也是loc=0
标准分布的界限,也是scale=1
的连续分布界限 .Only 如果您想熟悉实施细节,请使用此功能,并且您主要是供内部使用 .