如何使用概率分布对象计算点的概率?
How to calculate probability of a point using a probability distribution object?
我正在建立我以前的 因为还有一个问题。
我在 Matlab 中为我的数据向量安装了正态分布:PD = fitdist(data,'normal')
。现在我有一个新的数据点进来(例如 x = 0.5),我想计算它的概率。
使用 cdf(PD,x)
将不起作用,因为它给出了点小于或等于 x(但不完全是 x)的概率。使用 pdf(PD,x)
只给出密度而不是概率,因此它可以大于一。
如何计算概率?
如果分布是连续的,则任何点 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。在这种情况下,非零概率是附加到间隔而不是单个点的东西。您可能仍想询问获得值 near x
的概率——但随后您必须决定 "near" 的含义。例如,如果 x
是一个整数,那么您可能想知道得到一个四舍五入为 x 的值的概率。那将是:
cdf(PD, x + 0.5) - cdf(PD, x - 0.5)
假设您有一个随机变量 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(或任何特定值)的概率为零!一系列结果的概率为正,但单个结果的总和不足则概率为零。
我正在建立我以前的
我在 Matlab 中为我的数据向量安装了正态分布:PD = fitdist(data,'normal')
。现在我有一个新的数据点进来(例如 x = 0.5),我想计算它的概率。
使用 cdf(PD,x)
将不起作用,因为它给出了点小于或等于 x(但不完全是 x)的概率。使用 pdf(PD,x)
只给出密度而不是概率,因此它可以大于一。
如何计算概率?
如果分布是连续的,则任何点 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。在这种情况下,非零概率是附加到间隔而不是单个点的东西。您可能仍想询问获得值 near x
的概率——但随后您必须决定 "near" 的含义。例如,如果 x
是一个整数,那么您可能想知道得到一个四舍五入为 x 的值的概率。那将是:
cdf(PD, x + 0.5) - cdf(PD, x - 0.5)
假设您有一个随机变量 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(或任何特定值)的概率为零!一系列结果的概率为正,但单个结果的总和不足则概率为零。