2017-02-09 10 views
0

Я пытаюсь построить гамму (alpha = scale = 29, beta = size = 3), но я получаю ошибку TypeError: _parse_args() получил неожиданный аргумент ключевого слова 'размер' для y1. Я следую за scipy documentation для гамма-распределений, и есть параметр размера для гамма-распределения, поэтому я не понимаю, почему я получаю эту ошибку.ТипError: _parse_args() получил неожиданный аргумент ключевого слова 'размер' для гамма-распределения

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() 

Сообщение об ошибке enter image description here

+0

Показать полный след стека. – user2357112

+0

возможно вещь версии. страница, на которую вы ссылались, предназначена для версии 0.14.0 запустить 'scipy .__ version__', чтобы посмотреть, какая версия у вас есть – Nullman

+0

@ user2357112. – 14wml

ответ

2

В документации 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) 

так что вы можете играть с loc, scale но не size.
Вместо этого вы можете использовать этот параметр в

gamma.rvs(a, size=100) 

просто сделать пример.
Короче говоря, вы не должны иметь

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

, как вы можете увидеть в документации.

Посмотрите на методы, перечисленные в scipy.stats.gamma, и вы увидите, что метод gamma.pdf() не имеет параметра размера, который вы можете вызвать так, как вы это делали ранее.

+0

Является ли' a' масштаб гамма-распределения (бета)? – 14wml

+0

Тогда как перевести 'y1 = gamma.pdf (x, scale = 29, size = 3)' в гамма-распределение с параметрами alpha = scale = 29 и beta = size = 3 в python? Разве 'rvs' не возвращает случайную переменную, а не распределение вероятности? – 14wml

+0

'a' является параметром формы для гамма-распределения. «scale» - это параметр масштаба. –