如何在 python 中绘制用户定义的分布?
How to draw on a user-defined distribution in python?
我需要一些来自分布 p(x)=x*exp(-ax) x>0 的样本
但在 python 中,只有指数分布可用于采样。我怎样才能在 python 中利用这个分布?谢谢!!!
我认为这是伽玛分布,link https://en.wikipedia.org/wiki/Gamma_distribution
您可以使用 here
中的函数 random.gammavariate(alpha, beta)
Severin Pappadeux 是正确的,在这种情况下您可以使用 random.gammavariate(alpha, beta)
。但是,他没有解释最终分发的必要参数。
根据Gamma分布和你想要的分布,不难看出在random.gammavariate(alpha, beta)
中,我们需要设置alpha = 2
。然后,beta
参数可以设置为a ** -1
。我们只需要乘以 a ** -2
即可获得从您想要的分布中采样的值。
完整代码:
import random
def distr(a):
return random.gammavariate(2, a ** -1) * (a ** -2)
我需要一些来自分布 p(x)=x*exp(-ax) x>0 的样本 但在 python 中,只有指数分布可用于采样。我怎样才能在 python 中利用这个分布?谢谢!!!
我认为这是伽玛分布,link https://en.wikipedia.org/wiki/Gamma_distribution
您可以使用 here
中的函数random.gammavariate(alpha, beta)
Severin Pappadeux 是正确的,在这种情况下您可以使用 random.gammavariate(alpha, beta)
。但是,他没有解释最终分发的必要参数。
根据Gamma分布和你想要的分布,不难看出在random.gammavariate(alpha, beta)
中,我们需要设置alpha = 2
。然后,beta
参数可以设置为a ** -1
。我们只需要乘以 a ** -2
即可获得从您想要的分布中采样的值。
完整代码:
import random
def distr(a):
return random.gammavariate(2, a ** -1) * (a ** -2)