如何在python中使用alpha和beta参数绘制gamma分布

14w*_*wml 8 python numpy matplotlib gamma-distribution scipy

我想绘制一个alpha = 29(比例)和beta = 3(大小)的伽玛分布.换句话说,我想为Gamma绘制pdf(29,3).如果根据文档,python gamma函数只有参数a和x且size参数不存在,我该怎么做呢?

我认为loc是测试版,但我认为它实际上是偏移的,所以下面的代码是错误的...

import numpy as np
import scipy.stats as stats 
from matplotlib import pyplot as plt

x = np.linspace (0, 100, 200) 
y1 = stats.gamma.pdf(x, a=29, loc=3) #a is alpha, loc is beta???
plt.plot(x, y1, "y-", label=(r'$\alpha=29, \beta=3$')) 


plt.ylim([0,0.08])
plt.xlim([0,150])
plt.show()
Run Code Online (Sandbox Code Playgroud)

Scr*_*urr 14

根据文档,你想使用scale参数(theta),但是因为你定义了beta,它是theta的倒数,那么你传递的值为1/beta,在你的例子中为1/3或0.33333.

因此,尝试:

y1 = stats.gamma.pdf(x, a=29, scale=0.33333)
Run Code Online (Sandbox Code Playgroud)

  • 那么在这种情况下形状是“ a”吗? (2认同)
  • 看起来比例尺与贝塔值相同,而不是倒数。看看这些代码片段:`from math import e, gamma; fram scipy.stats 导入 inv.gamma; a=.1;b=.5;x=4;(b**a)/gamma(a) * x**(-a-1) * e**(-b/x); invgamma.pdf(x, a, scale=b)` 后两个表达式相同! (2认同)