web-dev-qa-db-fra.com

Random.nextgaussian () peut-il échantillonner des valeurs d'une distribution avec une moyenne et un écart-type différents?

Il s'agit d'un Java et question mathématique de base combinée. La documentation de Random.nextGaussian () indique qu'il échantillonne à partir d'une distribution normale avec la moyenne 0 et l'écart-type 1. Et si je voulais échantillonner à partir de une distribution normale avec une moyenne et une variance différentes?

19
darkhipo

La réponse courte est

Random r = new Random();
double mySample = r.nextGaussian()*desiredStandardDeviation+desiredMean;

Par exemple, cette réponse est donnée ici: http://www.javamex.com/tutorials/random_numbers/gaussian_distribution_2.shtml

Je ne comprenais pas vraiment pourquoi cela fonctionnait, mais après y avoir réfléchi un peu, je pense l'avoir compris. La moyenne du point d'échantillonnage est 0 et l'écart-type est 1; cela signifie que l'échantillon d'origine est également son propre score z ( https://en.wikipedia.org/wiki/Standard_score ). Pour citer wikipedia "La valeur absolue de z représente la distance entre le score brut et la moyenne de la population en unités de l'écart type". La formule est z = (x-mean)/stdev, donc avec les valeurs par défaut z = x. Si nous voulions conserver le score z pour l'échantillon mais changer la moyenne et stdev que ferions-nous?

z * stdev + mean = x 'où z = x et x' représente l'échantillon de la distribution avec la moyenne et l'écart type souhaités.

40
darkhipo