Quantile functions in Python
Asked Answered
O

2

9

I'm having trouble finding quantile functions for well-known probability distributions in Python, do they exist? In particular, is there an inverse normal distribution function? I couldn't find anything in either Numpy or Scipy.

Omniscience answered 10/8, 2015 at 1:30 Comment(2)
https://mcmap.net/q/418737/-python-equivalent-of-qnorm-qf-and-qchi2-of-r/625914Annamariaannamarie
... and #20627494Leitmotif
E
7

Check the .ppf() method of any distribution class in scipy.stats. This is the equivalent of a quantile function (otherwise named as percent point function or inverse CDF)

An example with the exponential distribution from scipy.stats:

# analysis libs
import scipy
import numpy as np
# plotting libs
import matplotlib as mpl
import matplotlib.pyplot as plt

# Example with the exponential distribution
c = 0
lamb = 2

# Create a frozen exponential distribution instance with specified parameters
exp_obj = scipy.stats.expon(c,1/float(lamb))

x_in = np.linspace(0,1,200) # 200 numbers in [0,1], input for ppf()
y_out = exp_obj.ppf(x_in)
plt.plot(x_in,y_out) # graphically check the results of the inverse CDF
Enunciation answered 29/6, 2018 at 8:56 Comment(0)
H
0

It seems new but I've found this about numpy and quantile. Maybe you can have a look (not tested)

Hileman answered 10/8, 2018 at 8:47 Comment(1)
That gives the empirical quantiles of a set of observations, rather than the exact quantiles of a theoretical distribution the poster is asking for. It is new to numpy, but gives the same functionality as the function np.percentile.Extravascular

© 2022 - 2024 — McMap. All rights reserved.