web-dev-qa-db-fra.com

Comment calculer PDF (fonction de densité de probabilité) en Python?

J'ai le code suivant ci-dessous qui imprime le graphique PDF pour une moyenne et un écart-type particuliers.

http://imgur.com/a/oVgML

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 
6
Raaj

À 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))
5
martinako

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.

4
MPath