如何在 python 中随机抽样 2 参数威布尔分布
How to random sample a 2-parameter weibull distribution in python
我想知道如何在 python 中生成具有 2 参数 (lambda, k) 的随机 weibull 分布。我知道 numpy 有一个 numpy.random.weibull,但它只接受 a 参数作为分布的形状。
好吧,如果您从 weibull 分布中抽取一个缺少标度参数的数字(假定标度等于 1),然后将其标度乘以 lambda。
x = numpy.random.weibull(a)
return lambda*x
Severin Pappadeux 的回答可能是包含比例参数的最简单方法。另一种方法是使用 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)
我想知道如何在 python 中生成具有 2 参数 (lambda, k) 的随机 weibull 分布。我知道 numpy 有一个 numpy.random.weibull,但它只接受 a 参数作为分布的形状。
好吧,如果您从 weibull 分布中抽取一个缺少标度参数的数字(假定标度等于 1),然后将其标度乘以 lambda。
x = numpy.random.weibull(a)
return lambda*x
Severin Pappadeux 的回答可能是包含比例参数的最简单方法。另一种方法是使用 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)