2017-02-09 9 views
0

Ich versuche, Gamma (Alpha = Maßstab = 29, Beta = Größe = 3) zu plotten, aber ich bekomme den Fehler TypeError: _parse_args() hat ein unerwartetes Schlüsselwortargument 'size' für y1. Ich verfolge die scipy documentation für Gamma-Verteilungen und es gibt einen Größenparameter für die Gammaverteilung, also verstehe ich nicht, warum ich diesen Fehler bekomme.TypeError: _parse_args() hat ein unerwartetes Schlüsselwortargument 'size' für die Gammaverteilung

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

Fehlermeldung enter image description here

+0

Zeigen Sie die vollständige Stapelverfolgung an. – user2357112

+0

wahrscheinlich eine Version der Sache. Die Seite, die Sie verlinkt haben, ist für ver 0.14.0 run 'scipy .__ version__', um zu sehen, welche Version Sie tatsächlich haben – Nullman

+0

@ user2357112 aktualisiert. – 14wml

Antwort

2

In der Dokumentation für gamma.pdf() der Größenparameter nicht existiert:

scipy.stats.gamma

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

Insbesondere bei den Methoden suchen in die Dokumentation:

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

so können Sie mit loc, scale spielen, aber nicht size.
Stattdessen könnten Sie diese Parameter in

gamma.rvs(a, size=100) 

nur verwenden, um ein Exempel zu statuieren.
Kurz gesagt, sie ist nicht

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

, wie Sie in der Dokumentation sehen haben soll.

Schauen Sie sich die in scipy.stats.gamma aufgelisteten Methoden an und Sie werden sehen, gamma.pdf() Methode hat keine Größe Parameter, die Sie auf die Weise aufrufen können, wie Sie getan haben, wie ich zuvor gezeigt habe.

+0

verwendet. Ist' a' der Maßstab der Gammaverteilung (Beta)? – 14wml

+0

Wie also übersetze ich 'y1 = gamma.pdf (x, scale = 29, size = 3)' 'in eine Gammaverteilung mit den Parametern alpha = scale = 29 und beta = size = 3 in python? Gibt 'rvs' keine Zufallsvariable zurück, KEINE Wahrscheinlichkeitsverteilung? – 14wml

+0

'a' ist der" Form "-Parameter der Gammaverteilung. 'scale' ist der Skalierungsparameter. –

Verwandte Themen