使用python scipy将伽马分布拟合到数据中

Sah*_*l M 5 python statistics gamma-distribution scipy

我想在我的数据中使用伽玛分布,我使用它

import scipy.stats as ss
import scipy as sp
import numpy as np
import os
import matplotlib.pyplot as plt

alpha = []
beta = []
loc = []

data = np.loadtxt(data)
fit_alpha, fit_loc, fit_beta = ss.gamma.fit(data, floc=0, fscale=1)
Run Code Online (Sandbox Code Playgroud)

我希望将伽玛分布中的一个参数保留为变量(比如形状),并修复其中一个参数(比方说scale=1).但是,如果我将loc变量保持为零,我无法将比例固定为一.这有什么解决方法吗?我是否可以仅使用形状和比例来参数化伽玛分布?

War*_*ser 6

在评论中,我说你遇到了gamma分发中的一个错误- 它不会让你修复位置和规模.该错误已在scipy 0.13中修复,但如果您无法升级,则可以使用fit该类的方法解决该错误,该类rv_continuous是以下类的父类gamma:

In [22]: from scipy.stats import rv_continuous, gamma

In [23]: x = gamma.rvs(2.5, loc=0, scale=4, size=1000)  # A test sample.

In [24]: rv_continuous.fit(gamma, x, floc=0, fscale=4)
Out[24]: (2.5335837650122608, 0, 4)
Run Code Online (Sandbox Code Playgroud)