【问题标题】: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)。方法是正确的。