【问题标题】:Finding probability of Gaussian random variable with range查找具有范围的高斯随机变量的概率
【发布时间】:2015-02-01 05:15:24
【问题描述】:

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

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

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

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

 Y = normpdf(X,mu,sigma)

【问题讨论】:

  • "...选择我的均值和方差" 请注意,normpdf() 使用输入参数 sigma 作为标准差,而不是方差。

标签: matlab random probability probability-density


【解决方案1】:

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

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

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

这是一个图片示例:

Source: ReliaWiki

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

Source: Introduction to Statistics

这里的 CDF 是连续的而不是离散的,但结果还是一样的。如果您想要两个区间之间的区域以及最终在两个范围之间的概率,则需要在x2 处获取 CDF 值并减去x1。您需要 剩余 区域,因此您只需减去 CDF 值并最终得到左尾区域,如此:

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

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

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

【讨论】:

  • 这个比较简单,我也用我的代码测试过,结果一样耶+1,
  • 非常感谢,非常详细,非常有帮助,谢谢!
  • 抱歉重复发布,但我如何绘制结果?
  • 你到底想画什么?
【解决方案2】:

你可以使用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中是这样定义的,

【讨论】:

  • 实际上normcdf 在后台使用erf,所以你实际上暴露了normcdf 实际上在做什么:) 我的朋友也为你+1。
猜你喜欢
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多