Matlab创建数组随机样本高斯分布

时间:2014-12-15 19:18:55

标签: matlab random probability sample random-sample

我想从高斯分布中得到一组随机样本。

平均值为0,方差为1。

如果我采集了足够的样本,我认为样本的最大值可以是0 + 1 = 1。 但是,我发现我得到了像4.2891 ......

这样的值

我的代码:

x = 0+sqrt(1)*randn(100000,1);
mean(x)
var(x)
max(x)

这会给我一个像0的平均值,变量0.9937,但我的最大值是4.2891?

任何人都可以帮我解释它为什么会这样做吗?

2 个答案:

答案 0 :(得分:1)

正如其他人所提到的,x在高斯分布中可以采用的可能值没有限制。但是,x距平均值越远,绘制的可能性就越小。

为了给出一些关于方差实际意义的直觉(对于任何分布,而不仅仅是高斯情况),你可以看一下68-95-99.7 rule。规则说:

  • 约68%的人口将在平均值的一个sigma
  • 约95%的人口将在两个sigma的平均值之内
  • 约99.7%的人口将在三个sigma之内

此处sigma = sqrt(var)是分布的标准偏差。

因此,虽然理论上可以从高斯分布中绘制任何x,但实际上,对于100000的群体,它不可能绘制超过5或6个标准偏差的任何东西。

答案 1 :(得分:0)

这将使用高斯正态分布产生N个随机数。

N = 100;
mu = 0;
sigma = 1;
Xs = normrnd(mu, sigma, N);

修改: 我刚刚意识到你的代码实际上与我所写的相同。 正如其他人已经指出的那样:方差样本可以偏离平均值的最大距离! (这只是这些距离的平方的平均值)