python 求 gamma 分布_用(python)Scipy拟合gamma分布

本文介绍了如何通过对样本数据的平均值和方差进行计算,使用Python自定义生成符合Gamma分布的随机样本,避免了`scipy.stats.gamma.rvs`生成负数的问题。通过创建`gamma_random_sample`函数,利用`random.gammavariate`生成符合给定均值和方差的伽马分布随机数,并确保结果为整数。
摘要由CSDN通过智能技术生成

我对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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值