可以使用scipy将连续随机变量转换为离散变量吗?

如果我初始化scipy.stats.rv_continuous的子类,例如scipy.stats.norm

>>> from scipy.stats import norm
>>> rv = norm()

在提供范围数之后,我可以将其转换为概率列表,每个元素代表一个值范围的概率吗?
就像是 –
(对于范围-[[-inf,-1),(-1,0),(0,1),(1,inf)])

>>> li
[0.15865525393145707, 0.34134474606854293, 0.34134474606854293, 0.15865525393145707]

(其中0.15865525393145707是该变量小于-1的概率,而0.34134474606854293处于-1至0的范围内的概率,对于其他变量则类似.

可以使用scipy吗?如果没有,哪个python库可以支持这种转换操作?

解决方法:

根据您的评论,您可以使用CDF进行计算:

from scipy.stats import norm
import numpy as np

>>> norm().cdf(-1) - norm().cdf(-np.inf), \
    norm().cdf(0) - norm().cdf(-1), \
    norm().cdf(1) - norm().cdf(0), \
    norm().cdf(np.inf) - norm().cdf(1)
(0.15865525393145707,
 0.34134474606854293,
 0.34134474606854293,
 0.15865525393145707)

基本上,这是从CDF的定义得出的.

请注意,我得到的数字总和为1,而不是您写为预期输出的数字.我不知道您说这些是正确的依据.我的猜测是您隐式使用具有非单位标准偏差的Normal变量.

上一篇:python-计算点的两个阵列之间的成对角矩阵


下一篇:在python中插值/外推丢失的日期?