我想知道如何在python中生成带有2参数(lambda,k)的随机魏布尔分布。我知道numpy有一个numpy.random.weibull,但是它只接受 a 参数作为分布的形状。
答案 0 :(得分:2)
好吧,如果您从weibull分布中采样了一个缺少比例尺参数的数字(假定比例尺等于1),则将其比例尺乘以lambda。
x = numpy.random.weibull(a)
return lambda*x
答案 1 :(得分:1)
Severin Pappadeux的答案可能是包含scale参数的最简单方法。一种替代方法是使用scipy.stats.weibull_min
。 weibull_min
具有三个参数:形状,位置和比例。您只需要形状和比例,因此可以将位置设置为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)