randn function does not work
9 ビュー (過去 30 日間)
古いコメントを表示
Binbin Zhang
2017 年 11 月 27 日
コメント済み: David Goodmanson
2017 年 11 月 27 日
the average value of data generated by function 'randn' is not zero
1 件のコメント
採用された回答
Walter Roberson
2017 年 11 月 27 日
Any one call to randn() is a finite sampling of the infinite distribution. The mean of 0 is statistical, not guaranteed for any finite subset.
If it were otherwise, imagine doing randn(1,1): in order for the mean of that sampling to be 0 each randn(1,1) would have to return 0. For randn(1,2) with two values being generated, both would have to be 0 or the two would have to be exact negatives of each other.
You can do statistical modeling to figure out the probability of the mean of a finite sampling being more than any given value.
0 件のコメント
その他の回答 (2 件)
Guillaume
2017 年 11 月 27 日
For some reason, my dice don't work either. I've thrown them many times, yet the mean value is not exactly 3.5.
>> mean(randn(1, 1e8))
ans =
-1.9019e-04
Pretty close to zero if you ask me. You'll only get exactly zero if you call randn an infinite number of times (or you're really lucky)
0 件のコメント
Binbin Zhang
2017 年 11 月 27 日
1 件のコメント
David Goodmanson
2017 年 11 月 27 日
Somebody should mention that if you take N samples from a distribution with standard deviation 1, then the standard deviation of the N-sample mean is 1/sqrt(N). So in Guillaume's example with N = 1e8, you would expect an answer down around 1e-4, which is what happened.
参考
カテゴリ
Help Center および File Exchange で 均匀分布(连续) についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!