我对ss.gamma.rvs函数不满意,因为它可以生成负数,这是gamma分布不应该有的。所以我通过期望值=平均值(data)和方差=var(data)对样本进行了拟合(详见维基百科),并编写了一个函数,该函数可以在不使用scipy的情况下生成伽马分布的随机样本(我发现很难正确安装,附注):import random
import numpy
data = [6176, 11046, 670, 6146, 7945, 6864, 767, 7623, 7212, 9040, 3213, 6302, 10044, 10195, 9386, 7230, 4602, 6282, 8619, 7903, 6318, 13294, 6990, 5515, 9157]
# Fit gamma distribution through mean and average
mean_of_distribution = numpy.mean(data)
variance_of_distribution = numpy.var(data)
def gamma_random_sample(mean, variance, size):
"""Yields a list of random numbers following a gamma distribution defined by mean and variance"""
g_alpha = mean*mean/variance
g_beta = mean/variance
for i in range(size):
yield random.gammavariate(g_alpha,1/g_beta)
# force integer values to get inte