Benus13
Benus13

Reputation: 91

Generating new exponential distribution from different exponential distribution

I have a numpy array in range [0,1000] with exponential distribution with lambda_x, I want to transform this numpy array to an array with different exponential distribution lambda_y. How can I find a function that does this mapping?

tried to use the inverse function but it didnt work.

def inverse(X, lambd):
    """Inverse  of exponential distribution """
    return -np.log(1-X)/lambd

Upvotes: 0

Views: 340

Answers (1)

pjs
pjs

Reputation: 19854

It should be as simple as taking your original exponentials X and scaling them by multiplying by λxy to produce Y's.

A well known mechanism is to generate exponentials via inverse transform sampling. The second example on that page shows that if you generate U's which are uniformly distributed between 0 and 1 (where 100*U corresponds to the percentiles of the distribution) and transform them using the formula -ln(1 - U) / λ, you will get exponentials with rate λ. If λ is λx it yields your X distribution, and if λ is λy it yields the Y distribution. Hence rescaling by the ratio of the lambdas will convert from one to the other for a given percentile.

Upvotes: 1

Related Questions