我正在依赖question,因为还有一个问题。
我在Matlab中拟合了一个正态分布到我的数据向量:PD = fitdist(data,'normal')
。现在我有一个新的数据点(例如x = 0.5),我想计算它的概率。
使用cdf(PD,x)
将不起作用,因为它给出了该点小于或等于x(但不完全是x)的概率。使用pdf(PD,x)
只提供密度而不是概率,因此它可以大于1。
如何计算概率?
答案 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
落在a
和b
之间的概率,即P(a< X< = b)= F(b) - F(a)。
在Matlab代码中:
P_a_b = normcdf(b, mu, s) - normcdf(a, mu, s);
注意:观察到概率X 正好等于0.5(或任何特定值)为零!一系列结果将具有正概率,但个别结果的总和不足将具有零概率。