2017-02-09 51 views
0

我想繪製伽瑪(alpha = scale = 29,beta = size = 3),但我得到錯誤TypeError:_parse_args ()爲y1獲得了意想不到的關鍵字參數'size'。我正在關注伽瑪分佈的scipy documentation,並且伽馬分佈有一個大小參數,所以我不明白爲什麼我會得到這個錯誤。TypeError:_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) 

這樣你就可以locscale但不size玩。
相反,你可以使用該參數在

gamma.rvs(a, size=100) 

只是做出了榜樣。
簡單地說,你不應該有

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

,你可以在文檔中看到的。

看看scipy.stats.gamma中列出的方法,你會看到gamma.pdf()方法沒有你可以調用的尺寸參數,就像我之前展示的那樣。

+0

'a'是伽馬分佈(beta)的比例嗎? – 14wml

+0

那麼如何在python中將'y1 = gamma.pdf(x,scale = 29,size = 3)'轉換爲參數alpha = scale = 29和beta = size = 3的伽馬分佈?不是'rvs'返回一個隨機變量,而不是一個概率分佈? – 14wml

+0

'a'是gamma分佈的「形狀」參數。 scale是尺度參數。 –

相關問題