【问题标题】:How to calculate probability in normal distribution by Matlab?Matlab如何计算正态分布的概率?
【发布时间】:2013-03-21 17:56:06
【问题描述】:

我是 Matlab 的新手,如果有人可以提供帮助,我将不胜感激。 问题:

IQ 系数呈正态分布,平均值为 100,标准差为 15。计算从该人群中随机抽取的人的 IQ 大于 110 但小于 130 的概率。您可以使用一行matlab代码。 这看起来像什么?

我试过这样:

>> max(normpdf(linspace(110,130,100),100,15))
ans =
    0.0213

但不确定是否正确..

如果有任何帮助,我将不胜感激!

【问题讨论】:

标签: matlab probability normal-distribution


【解决方案1】:

让我们检查一下:

N=1e7;                          %Number of "experimental" samples
iq = randn(1,N)*15 + 100;       %Create a set of IQ values
p = sum(iq>=110 & iq<=130)/N    %Determine how many are in range of interest.

这会返回一个大约 23% 的数字。

【讨论】:

  • @GyuzalR 这是一种没有必要且仅是近似的经验方法。 OP的问题完全可以用累积分布函数来回答。这确实可以验证this answer
【解决方案2】:

使用正常的累积密度函数可以最有效地处理。

normcdf(130,100,15) - normcdf(110,100,15)

或者,如果您希望手动将这些转换为“Z”分数,那么您可以使用 cdf 的单参数版本。

normcdf(30/15) - normcdf(10/15)

在任何一种情况下,答案都是 0.2297,因此约为 23%。

【讨论】:

  • 我相信这里有一个错字......@Stuart 表示累积分布函数 (wiki)。方法是正确的。
猜你喜欢
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 2017-06-05
  • 2011-09-30
  • 2010-11-25
  • 2016-07-28
相关资源
最近更新 更多