如何使用概率分布对象计算点的概率?

时间:2016-04-07 10:59:22

标签: matlab probability probability-density

我正在依赖question,因为还有一个问题。

我在Matlab中拟合了一个正态分布到我的数据向量:PD = fitdist(data,'normal')。现在我有一个新的数据点(例如x = 0.5),我想计算它的概率。

使用cdf(PD,x)将不起作用,因为它给出了该点小于或等于x(但不完全是x)的概率。使用pdf(PD,x)只提供密度而不是概率,因此它可以大于1。

如何计算概率?

2 个答案:

答案 0 :(得分:4)

如果分布是连续的,那么任何点x的概率都是0,几乎是连续分布的定义。如果分布是离散的,而且分布的支持是整数集的一个子集,那么对于任何整数x,它的概率是

cdf(PD,x) - cdf(PD,x-1)

更一般地说,对于任何采用整数值的随机变量X,概率质量函数f(x)和累积分布F(x)通过

相关联
f(x) = F(x) - F(x-1)

右侧可以解释为离散导数,因此这直接类比于连续情况下pdf是cdf的导数。

我不确定matlab在你的情况下是否有更直接的方法来获得概率质量函数,而不是像那样通过cdf。

在连续的情况下,你的问题没有多大意义,因为正如我上面所说,概率是0.在这种情况下,非零概率是附加到区间而不是单个点的东西。您仍然可能想要询问接近 x的值的可能性 - 但是您必须决定"接近"的含义。例如,如果x是一个整数,那么您可能想知道获得一个舍入为x的值的概率。那将是:

cdf(PD, x + 0.5) - cdf(PD, x - 0.5)

答案 1 :(得分:1)

假设您有一个随机变量X,它遵循正态分布,均值为mu,标准差为s

设F为正态分布的累积分布函数,平均值为mu,标准差为s。随机变量X落在ab之间的概率,即P(a< X< = b)= F(b) - F(a)。

在Matlab代码中:

P_a_b = normcdf(b, mu, s) - normcdf(a, mu, s);

注意:观察到概率X 正好等于0.5(或任何特定值)为零!一系列结果将具有正概率,但个别结果的总和不足将具有零概率。