用范围寻找高斯随机变量的概率

时间:2014-12-03 15:11:59

标签: matlab random probability probability-density

我是MATLAB的初学者,试图用它来帮助我理解随机信号,我正在做一些正态概率密度函数计算,直到我遇到这个问题:

编写一个MATLAB程序来计算概率Pr(x1 ≤ X ≤ x2) 如果X是任意x1x2的高斯随机变量。

请注意,您必须指定高斯随机的meanvariance 变量

我通常使用内置的normpdf函数当然选择我的均值和方差,但对于这一个,因为它有一个范围我不知道我能做什么来找到答案

 Y = normpdf(X,mu,sigma)

帮助将不胜感激

2 个答案:

答案 0 :(得分:3)

如果你从概率论中回忆起来,你知道Cumulative Distribution Function总结了从-infinity到某一点x的概率。具体而言,在特定点F(x)评估的随机变量P的概率分布X的CDF x定义为:

请注意,我假设我们正在处理离散情况。另外,我们将其称为左尾和,因为它将从分布左侧到点x的所有概率相加。因此,这会将曲线下方的区域定义为点x

现在,您的问题是要找到某个范围x1 <= x <= x2之间的概率,而不仅仅是使用左尾总和(<= x)。现在,如果x1 <= x2,这意味着终点为x2的总面积,或所有事件达到并包括x2的概率,也是部分x1定义的终点定义的区域的>。因为您希望概率介于某个范围之间,所以您需要累积x1x2之间发生的所有事件,因此您希望PDF曲线下面的区域介于此范围之间。此外,您希望区域更大而不是x1且小于x2

这是一个图例:

http://reliawiki.com/images/0/0b/Chp3pdf.png Source: ReliaWiki

上图是高斯分布函数的PDF,而下图是高斯分布的CDF。您会看到,如果x1 <= x2x1点定义的区域x2处的点捕获。这是一个更好的图表:

http://work.thaslwanter.at/Stats/html/_images/PDF.png Source: Introduction to Statistics

这里CDF是连续的而不是离散的,但结果仍然是相同的。如果您希望区域介于两个区间之间,并且最终需要两个区间之间的概率,则需要将CDF值设为x2减去 CDF价值x1。您需要剩余区域,因此您只需要减去 CDF值并最终减去左尾区域,因此:

因此,要计算高斯分布的CDF,请使用normcdf并指定高斯分布的均值和标准差。因此,您只需要这样做:

y = normcdf(x2, mu, sigma) - normcdf(x1, mu, sigma);

x1x2是您想要计算概率总和的区间值。

答案 1 :(得分:1)

您可以使用erf

mu = 5;
sigma = 3;
x1 = 3;
x2 = 8;
p = .5*(erf((x2-mu)/sigma/2^.5) - erf((x1-mu)/sigma/2^.5));

error function在MATLAB中定义如下,

enter image description here