如果我初始化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变量.