J'ai le code suivant ci-dessous qui imprime le graphique PDF pour une moyenne et un écart-type particuliers.
Maintenant, je dois trouver la probabilité réelle, d'une valeur particulière. Ainsi, par exemple, si ma moyenne est 0 et ma valeur 0, ma probabilité est 1. Cela se fait généralement en calculant l'aire sous la courbe. Similaire à ceci:
http://homepage.divms.uiowa.edu/~mbognar/applets/normal.html
Je ne sais pas comment aborder ce problème
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
def normal(power, mean, std, val):
a = 1/(np.sqrt(2*np.pi)*std)
diff = np.abs(np.power(val-mean, power))
b = np.exp(-(diff)/(2*std*std))
return a*b
pdf_array = []
array = np.arange(-2,2,0.1)
print array
for i in array:
print i
pdf = normal(2, 0, 0.1, i)
print pdf
pdf_array.append(pdf)
plt.plot(array, pdf_array)
plt.ylabel('some numbers')
plt.axis([-2, 2, 0, 5])
plt.show()
print
À moins que vous n'ayez une raison de le mettre en œuvre vous-même. Toutes ces fonctions sont disponibles dans scipy.stats.norm
Je pense que vous demandez le cdf , puis utilisez ce code:
from scipy.stats import norm
print(norm.cdf(x, mean, std))
L'aire sous une courbe y = f(x)
de x = a
À x = b
Est la même que l'intégrale de f(x)dx
de x = a
À x = b
. Scipy a un moyen rapide et facile de faire des intégrales. Et juste pour que vous compreniez, la probabilité de trouver un seul point dans cette zone ne peut pas être un parce que l'idée est que l'aire totale sous la courbe est un (sauf PEUT-ÊTRE c'est une fonction delta). Vous devriez donc obtenir 0 ≤ probability of value < 1
Pour toute valeur d'intérêt particulière. Il peut y avoir différentes façons de le faire, mais une méthode conventionnelle consiste à attribuer des intervalles de confiance le long de l'axe des x comme ceci . Je lirais les courbes gaussiennes et la normalisation avant de continuer à les coder.