2015-10-26 2 views
3

Je dois obtenir le Nième quantile d'une distribution bêta, ou de manière équivalente, le percentile 95% ou 99%. C'est tellement plus facile dans Maple, ce qui permet une entrée symbolique - mais comment cela se fait-il en Python?Obtenir des quantiles à partir d'une distribution bêta en utilisant python

J'ai cherché stackoverflow, et il semble que les gens ne s'intéressent souvent qu'à la distribution normale.

Merci!

+0

Je suis confus. Demandez-vous un moyen de dire, par exemple, si 'x = 1' est dans le percentile de 95%? Vous pouvez utiliser 'scipy.stats.beta' pour cela. – Julien

+0

Merci @Julien, je l'ai fait. – irene

Répondre

1

Vous pouvez calculer le quantile d'une distribution bêta avec la fonction suivante:

from scipy.stats import beta 
import numpy as np 
a, b = 2.31, 0.627 
x = np.linspace(beta.ppf(0.01, a, b), beta.ppf(0.99, a, b), 100) 
distribution=beta.pdf(x, a, b) 
def quantile(x,quantiles): 
    xsorted = sorted(x) 
    qvalues = [xsorted[int(q * len(xsorted))] for q in quantiles] 
    return zip(quantiles,qvalues) 
quantiles = quantile(distribution,[0.05,0.16,.5,.84, 0.95]) 
+0

Merci beaucoup! J'ai fini par utiliser le ppf mais c'est vraiment utile. – irene

1

J'ai fini avec les FPP au lieu:

scipy.stats.beta.ppf(prob,2,N-2) 
+0

Beaucoup mieux. 123 – Petter