How to random sample a 2-parameter weibull distribution in python

别来无恙 提交于 2019-12-02 04:39:54

问题


I was wondering how to generate a random weibull distribution with 2-parameter (lambda, k) in python. I know that numpy has a numpy.random.weibull, but it only accepts the a parameter as the shape of the distribution.


回答1:


Severin Pappadeux's answer is probably the simplest way to include the scale parameter. An alternative is to use scipy.stats.weibull_min. weibull_min has three parameters: shape, location and scale. You only want the shape and scale, so you would set the location to 0.

from scipy.stats import weibull_min

n = 100     # number of samples
k = 2.4     # shape
lam = 5.5   # scale

x = weibull_min.rvs(k, loc=0, scale=lam, size=n)



回答2:


Well, if you sample a number from weibull distribution with scale parameter missing (which assumes scale is equal to 1), then to get it scale multiply by lambda.

x = numpy.random.weibull(a)
return lambda*x


来源:https://stackoverflow.com/questions/51956951/how-to-random-sample-a-2-parameter-weibull-distribution-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!