Assuming that it's appropriate to model this system with a Myerson distribution then, according to Frontline Solvers, "[i]f the specified percentiles are equidistant (measured by the parameter b’ below), then the Myerson distribution is equivalent to a Normal distribution." You're in luck with a simple case.
Of course this cannot be quite true because the normal has infinite tails. You would need to draw samples from a normal population that is truncated on the left.
The (untruncated) normal distribution you need has a mean of 1.5 hours, and puts 40% of its mass between 1 hour and that mean of 1.5 hours. The standard normal puts 40% of its mass between -1.2815515655446004 and 0. Then, given a supply of standard normal random deviates, z
we could convert them to (untruncated) deviates of the kind needed by scaling them 0.5*(z+1.5)/1.28155
, where 0.5 is the 'distance' between 1 hour and 1.5 hours, and 1.28155 is the corresponding 'distance' for the standard normal.
Being a normal distribution it's possible that some random variables less than zero might be generated. However, using the scipy library I find that,
>>> norm.cdf(0, loc=1.5, scale=0.5/1.28)
6.151715518325519e-05
I would say that this is so unlikely that it's not worth the bother to treat this as a truncated normal.
Therefore, to obtain a sample of Myerson deviates as defined in your question you could do this.
>>> from scipy.stats import norm
>>> sample = norm.rvs(loc=1.5, scale=0.5/1.28, size=100)
The values for loc
and scale
are as we've discussed. The value for size
would be whatever sample size you require.