0

我正在尝试绘制 Gamma(alpha=scale=29, beta=size=3),但我收到错误 TypeError: _parse_args() got an unexpected keyword argument 'size' for y1. 我正在关注伽玛分布的scipy 文档,并且有一个伽玛分布的大小参数,所以我不明白为什么会出现这个错误。

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

x = np.linspace (0, 100, 200) #start, stop, num of samples
y1 = gamma.pdf(x, scale = 29, size = 3) #PRODUCES ERROR HERE
plt.plot(x, y1, "-", label=(r'$\alpha=1, \beta=1$')) 

plt.xlabel(r'$x$')
plt.ylabel(r'$y$')
plt.title('Gamma Distributions (' + r'$y=Gamma(\alpha + k, \beta + 1)$' +')')
plt.legend(loc='best')
plt.show()

错误信息 在此处输入图像描述

4

1 回答 1

3

在 size 参数的文档gamma.pdf()中不存在:

scipy.stats.gamma

gamma.pdf(x, a) = lambda**a * x**(a-1) * exp(-lambda*x) / gamma(a)  

特别是,查看文档中的方法:

gamma.pdf(x, a, loc=0, scale=1)

所以你可以玩locscale但不能size
相反,您可以在

gamma.rvs(a, size=100)  

只是举个例子。
简而言之,您不应该拥有

y1 = gamma.pdf(x, scale = 29, size = 3)  

正如您在文档中看到的那样。

查看scipy.stats.gamma中列出的方法,您会看到gamma.pdf()方法没有 size 参数,您可以按照我之前展示的方式调用该参数。

于 2017-02-09T23:31:08.380 回答