usar probabilidad pmf normal funciones funcion exponencial estadistica distribución distribucion como python scipy normal-distribution

python - probabilidad - pmf estadistica



¿Cómo se calcula el inverso de la función de distribución acumulativa normal en python? (2)

¿Cómo calculo el inverso de la función de distribución acumulativa (CDF) de la distribución normal en Python?

¿Qué biblioteca debo usar? Posiblemente astuto?


NORMSINV (mencionado en un comentario) es el inverso de la CDF de la distribución normal estándar. Usando scipy , puede calcular esto con el método scipy.stats.norm objeto scipy.stats.norm . El acrónimo ppf significa función de punto porcentual , que es otro nombre para la función de cuantil .

In [20]: from scipy.stats import norm In [21]: norm.ppf(0.95) Out[21]: 1.6448536269514722

Verifique que sea el inverso de la CDF:

In [34]: norm.cdf(norm.ppf(0.95)) Out[34]: 0.94999999999999996

Por defecto, norm.ppf usa mean = 0 y stddev = 1, que es la distribución normal "estándar". Puede usar una media diferente y una desviación estándar especificando los argumentos loc y scale , respectivamente.

In [35]: norm.ppf(0.95, loc=10, scale=2) Out[35]: 13.289707253902945

Si scipy.stats.norm el código fuente de scipy.stats.norm , verás que el método ppf finalmente llama a scipy.special.ndtri . Entonces, para calcular el inverso de la CDF de la distribución normal estándar, puede usar esa función directamente:

In [43]: from scipy.special import ndtri In [44]: ndtri(0.95) Out[44]: 1.6448536269514722


# given random variable X (house price) with population muy = 60, sigma = 40 import scipy as sc import scipy.stats as sct sc.version.full_version # 0.15.1 #a. Find P(X<50) sct.norm.cdf(x=50,loc=60,scale=40) # 0.4012936743170763 #b. Find P(X>=50) sct.norm.sf(x=50,loc=60,scale=40) # 0.5987063256829237 #c. Find P(60<=X<=80) sct.norm.cdf(x=80,loc=60,scale=40) - sct.norm.cdf(x=60,loc=60,scale=40) #d. how much top most 5% expensive house cost at least? or find x where P(X>=x) = 0.05 sct.norm.isf(q=0.05,loc=60,scale=40) #e. how much top most 5% cheapest house cost at least? or find x where P(X<=x) = 0.05 sct.norm.ppf(q=0.05,loc=60,scale=40)