Calculer la probabilité de distribution normale de moyenne donné, les mst en Python
Comment calculer la probabilité de distribution normale de moyenne donné, les mst en Python? Je peux toujours explicitement le code de ma propre fonction, selon la définition de l'OP dans cette question n': Le calcul de Probabilité d'une Variable Aléatoire de Distribution en Python
Demandais juste si il y a une bibliothèque appel de fonction vous permettra de le faire. Dans mon imaginer que ce serait comme ceci:
nd = NormalDistribution(mu=100, std=12)
p = nd.prob(98)
Il y a une question similaire en Perl: Comment puis-je calculer la probabilité à un point donné d'une distribution normale en Perl?. Mais je n'ai pas vu un seul en Python.
Numpy
a un random.normal
fonction, mais c'est comme d'échantillonnage, pas exactement ce que je veux.
Vous devez vous connecter pour publier un commentaire.
Il y en a un dans scipy.stats:
[Une chose à garder de -- juste un conseil, -- c'est que le passage de paramètres est un peu large. En raison de la façon dont le code est mis en place, si vous avez accidentellement écrire
scipy.stats.norm(mean=100, std=12)
au lieu descipy.stats.norm(100, 12)
ouscipy.stats.norm(loc=100, scale=12)
, puis il va l'accepter, mais ignorer silencieusement les mots clés d'arguments et de vous donner la valeur par défaut (0,1).]scipy.stats.norm(100, 12).pdf(98)
, est-ce à dire que la probabilité d'obtenir 98 dans un réseau de distribution avecmean 100
etstddev 12
est0.032
?rv.cdf(102) - rv.cdf(98)
oùrv = scipy.stats.norm(100, 12)
.Scipy.stats est un grand module. Juste pour proposer une autre approche, vous pouvez calculer directement à l'aide de
Il utilise la formule trouvée ici: http://en.wikipedia.org/wiki/Normal_distribution#Probability_density_function
à tester:
Ici est plus d'infos.
D'abord, vous avez affaire avec une gelée de distribution (congelés dans ce cas signifie que ses paramètres sont fixés à des valeurs spécifiques). Pour créer une gelée de distribution:
De départ
Python 3.8
, la bibliothèque standard fournit laNormalDist
objet dans le cadre de lastatistiques
module.Il peut être utilisé pour obtenir le fonction de densité de probabilité (
pdf
- la probabilité qu'un échantillon aléatoire X sera proche de la valeur donnée x) pour une dire (mu
) et écart-type (sigma
):Également de noter que la
NormalDist
objet fournit également la la fonction de distribution cumulée (cdf
- probabilité qu'un échantillon aléatoire X soit inférieur ou égal à x):La formule citée à partir de wikipedia mentionné dans les réponses ne peuvent pas être utilisés pour calculer la normale probabilites. Vous devez écrire une intégration numérique approximation de la fonction à l'aide de cette formule afin de calculer la probabilité.
Cette formule calcule la valeur de la fonction de densité de probabilité. Depuis la loi de distribution normale est continu, vous devez calculer une intégrale pour obtenir des probabilités. Le site wikipédia mentionne la CDF, qui n'a pas une forme fermée pour la distribution normale.
Dans le cas où vous souhaitez trouver la zone entre les 2 valeurs de la moyenne de x = 1; écart-type = 2; la probabilité de x entre [0.5,2]
J'ai écrit ce programme pour faire le calcul pour vous. Il suffit d'entrer dans le résumé statistiques. Pas besoin de fournir un tableau:
Un Exemple de Test Z pour une Proportion de la Population:
Pour ce faire, pour dire, plutôt que de proportion, de modifier la formule de z en conséquence
EDIT:
Voici le contenu à partir du lien:
Vous pouvez simplement utiliser la fonction d'erreur qui est intégré à la bibliothèque de mathématiques, comme indiqué sur leur site web.