La génération d'une distribution gaussienne avec uniquement des nombres positifs
Est-il possible de générer aléatoirement un ensemble de nombres positifs tels qu'ils ont souhaité moyenne et l'écart type?
J'ai un algorithme pour générer des nombres avec une distribution gaussienne, mais je ne sais pas comment traiter avec les nombres négatifs d'une manière qui préserve la moyenne et l'écart type.
Il ressemble à une distribution de poisson pourrait être une bonne approximation, mais il ne prend qu'une moyenne.
EDIT: Il y a eu une certaine confusion dans les réponses, donc je vais essayer de clarifier.
J'ai un ensemble de nombres qui me donnent une moyenne et un écart-type. Je voudrais générer une taille égale, un ensemble de nombres avec un équivalent de la moyenne et de l'écart-type. Normalement, je voudrais utiliser une distribution gaussienne pour ce faire, cependant dans ce cas j'ai une contrainte supplémentaire que toutes les valeurs doivent être supérieures à zéro.
L'algorithme que je suis à la recherche de n'a pas besoin d'être gaussien (à en juger par les commentaires jusqu'à présent, il ne devrait probablement pas être) et n'a pas besoin d'être parfait. Il n'a pas d'importance si le jeu est un peu différent en moyenne/écart-type -- je veux juste quelque chose qui va généralement être dans la bonne fourchette.
n'est pas une distribution gaussienne, par définition, également inclure les nombres négatifs, c'est à dire n'importe comment grand (positif) de votre dire, c'est que la gauche de la queue toujours étendent à l'infini négatif?
Vous êtes correct. C'est pourquoi j'essaie de trouver une autre méthode.
Les algorithmes que j'ai essayé ont impliqué de générer des nombres basés sur une distribution gaussienne des mesures supplémentaires pour se débarrasser de négatifs. Par exemple, en prenant la valeur absolue des nombres négatifs.
En plus de la moyenne et de la std dev, avez-vous plus d'infos à propos de votre distribution? Par exemple, il y a un minimum, un maximum? À partir de votre description, il semble que vous n'êtes pas à la recherche pour les entiers, mais pour une distribution continue - est-ce exact?
OriginalL'auteur Whatsit | 2009-11-05
Vous devez vous connecter pour publier un commentaire.
Vous cherchez peut-être une distribution log-normale, comme David Norman, ou peut-être exponentielle, binomiale, ou d'une autre distribution. Si vous avez un algorithme pour générer une distribution, il n'est probablement pas bon pour générer des nombres conformes à l'autre distribution. Mais vous seul savez combien de vos numéros sont vraiment distribué.
Avec une distribution normale, la variable aléatoire est de moins l'infini à l'infini positif, donc si vous êtes à la recherche pour les nombres positifs, alors elle n'est pas Gaussien.
Différentes distributions ont également des propriétés uniques, par exemple, avec une distribution de Poisson, les écarts-types est toujours égale à la moyenne. (C'est pourquoi votre fonction de bibliothèque n'a pas demander à partir de l'écart type du paramètre, seule la moyenne).
Dans le pire des cas, vous pouvez générer un nombre réel aléatoire entre 0 et 1, et calculer la fonction de densité de probabilité sur votre propre. (En fonction de la distribution, cela peut être beaucoup plus facile à dire qu'à faire).
OriginalL'auteur azheglov
Tout d'abord, vous ne pouvez pas générer uniquement des valeurs positives à partir d'une distribution Gaussienne.
Deuxième, suis-je bien comprendre que vous essayez de générer une distribution aléatoire avec moyenne et écart-type? Aucune distribution n'? Si oui, laissez-moyenne =
m
et l'écart-type =s
. Je suis en supposant quem - s > 0
.Les valeurs retournées par ce processus signifie
m
et l'écart-types
.J'ai fait la déclaration suivante: "je suis en supposant que
m - s > 0
."C'est une réponse intéressante. Malheureusement, dans mon cas, il n'est pas toujours vrai que les m >. J'aimerais aussi un peu plus de variation pour les valeurs générées, si je n'ai pas mentionné dans la question. +1 pour une nouvelle solution.
J'ai essayé de garder l'esprit de votre solution (la plus simple de distribution satisfaisant aux exigences) et travaillé sur une solution générale pour tout m et s ci-dessous...
OriginalL'auteur jason
Vous pouvez utiliser un log-normale de distribution.
OriginalL'auteur David Norman
Pourquoi ne pas utiliser une méthode de ré-échantillonnage? Si vous avez n numéros dans votre échantillon, il suffit de prendre n tirage au sort de l'échantillon, avec remplacement. Le jeu sera attendu, de la moyenne et de la variance d'environ le même que l'original de votre échantillon, mais il sera généralement légèrement différente.
Cela dit, sans savoir pourquoi vous avez besoin de plus de nombres aléatoires, il est impossible de dire quelle est la bonne réponse est. On se demande si vous essayez de résoudre le mauvais problème...
OriginalL'auteur Harlan
Je ne pouvais pas résister, je l'aime vraiment, Jason angle, mais n'était pas heureux que sa réponse ne couvre que les cas où les m > s, j'ai donc travaillé sur une solution générale à la suite de son idée.
Le plus simple de distribution donné, avec m,s et de termes positifs est
Preuve: pour une distribution de X avec deux résultats lowX avec une probabilité p et highX avec la probabilité (1-p),
m = E[X] = p x lowX + (1-p) x highX
s^2 = Variance(X) = E[X^2] - E[X]^2 = p x lowX^2 + (1-p) x highX^2 - m^2
Ensemble lowX de 0 et de résoudre highX et p.
Merci - compte tenu de l'esprit de votre réponse, j'ai pensé que vous apprécieriez 🙂
OriginalL'auteur Mathias
Vous pouvez utiliser n'importe quelle distribution qui a un soutien positif ET peut être défini par la moyenne et la variance. Par exemple,
OriginalL'auteur Apprentice Queue
Si je vous comprends bien, vous voulez générer des nombres aléatoires à partir d'une distribution à support positif. Il y a beaucoup de choix possibles. Le plus simple est la
chi-carré: http://en.wikipedia.org/wiki/Chi-square_distribution
(qui est la somme de deux carrés gaussiennes)
Tous les assymétrique de distribution (exponentielle, weibull, pareto, Inverse Gaussien, log-normale, Gamma)
Toutes les distributions à partir de l'inclinaison famille (skew-normal, inclinaison-élève,...)
Toutes les fonctions ci-dessus sont telles que tout nombre aléatoire tiré de l'un d'eux va toujours être positif.
OriginalL'auteur user189035
ce que le diable êtes-vous des clowns en train de parler? la normale standard a moyenne nulle, mais c'est un cas particulier de la distribution Gaussienne, ce qui a des paramètres, la moyenne et l'écart-type. comme la moyenne augmente, avec sd maintenue constante, la probabilité de générer des nombres au-dessous de zéro diminue jusqu'à zéro. vous pouvez tout à fait avoir une distribution gaussienne pas les nombres négatifs.
L'utilisateur veut le dire\sd préservée avec aucun des nombres négatifs, vous ne pouvez pas passer la courbe. Log-normale est une alternative de distribution qui peut être considéré comme
OriginalL'auteur Laurie