randn function does not work
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Binbin Zhang
le 27 Nov 2017
Commenté : David Goodmanson
le 27 Nov 2017
the average value of data generated by function 'randn' is not zero
1 commentaire
Réponse acceptée
Walter Roberson
le 27 Nov 2017
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 commentaires
Plus de réponses (2)
Guillaume
le 27 Nov 2017
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 commentaires
Binbin Zhang
le 27 Nov 2017
1 commentaire
David Goodmanson
le 27 Nov 2017
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.
Voir également
Catégories
En savoir plus sur 均匀分布(连续) dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!