Scipy能将连续随机变量转换为离散随机变量吗?

3

如果我初始化一个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库可以支持这样的转换操作?

1个回答

3
根据您的评论,您可以使用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,但不是您所写的预期输出。我不知道您说这些是正确的依据。我猜想您在隐含使用具有非单位标准差的正态变量。

我是指我想要以下范围的概率 [(-inf,-1), (-1,0), (0,1), (1, inf)],它应该给出类似于 [0.01, 0.49, 0.49, 0.01] 的东西,其中 0.01 是变量小于 -1 的概率,0.49 是在范围 -1 到 0 中的概率,其他类似。我想要该范围的总概率。上述方法会给出总概率吗? - Yashu Seth
谢谢。我懂了。我只是用这个例子进行说明。是的,它们不是正确的结果。 - Yashu Seth
好的。请注意,这对于任何试图回答问题的人来说都是极其误导的 - 它会明显减慢回答的速度。 - Ami Tavory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接