lundi 2 mai 2022

getting values from a CDF

Good morning, everyone. I have a set of values.

Arr = np.array([0.11, 0.14, 0.22, 0.26, 0.31, 0.36, 0.44, 0.69, 0.70, 0.70, 0.70, 0.75, 0.98, 1.40])

I have constructed the CDF function in this way:

def ecdf(a):
    x, counts = np.unique(a, return_counts=True)
    cusum = np.cumsum(counts)
    return x, cusum / cusum[-1]

def plot_ecdf(a):
    x, y = ecdf(a)
    x = np.insert(x, 0, x[0])
    y = np.insert(y, 0, 0.)
    plt.plot(x, y, drawstyle='steps-post')
    plt.grid(True)

ecdf_ = ecdf(Arr)
plot_ecdf(ecdf_)

Obtaining this figure:

enter image description here

Now I want to divide the space (y-axis) into 5 parts. To do this I am using the following function:

from scipy.stats.qmc import LatinHypercube
engine = LatinHypercube(d=1)
sample = engine.random(n=5) #Array of float64

For example, obtaining 5 values randomly generated:

0.0886183
0.450613
0.808077
0.753524
0.343108

At this point I would like to keep the corresponding values in the CDF as in the picture.

enter image description here

I also observed that in this way the constructed CDF has a discrete set of values. Which may not be optimal for my purpose.




Aucun commentaire:

Enregistrer un commentaire