vermutlicher Fehler in random.gammavariate

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Goswin
User
Beiträge: 366
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

Ich glaube, einen Fehler im Modul <random>, Funktion <random.gammavariate> entdeckt zu haben, seid ihr auch dieser Meinung? (Ich habe freilich keine Ahnung, wie normale Programmierer so etwas den Verantwortlichen melden, wer Lust hat, kann das ja mal versuchen)


Wenn wir folgenden Code laufen lassen,

Code: Alles auswählen

import random
random.seed(0)
alfa = 100.0
beta = 10.0
mean = alfa/beta  #see wikipedia: gamma_distribution
#
for ii in range(10):
   xx = random.gammavariate(alfa,beta)
   print("mean = {},  xx = {:9.2f}".format(mean,xx))
erhalten wir
mean = 10.0, xx = 1127.39
mean = 10.0, xx = 977.54
mean = 10.0, xx = 1003.20
mean = 10.0, xx = 1095.60
mean = 10.0, xx = 993.38
mean = 10.0, xx = 1176.32
mean = 10.0, xx = 935.84
mean = 10.0, xx = 1034.80
mean = 10.0, xx = 1177.97
mean = 10.0, xx = 1108.37
Wenn wir bedenken, dass für die Gammaverteilung xx>0 gelten muss, sind diese Ergebnisse einfach lächerlich.
BlackJack

Wenn Du `mean` richtig berechnest, also `alfa * beta` ist es vielleicht weniger lächerlich: GammaDistribution[100.0,10.0]
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Man muss immer aufpassen wie eine Funktion parametrisiert ist. Da gibt es offensichtlich verschiedene Ansätze. Siehe deutsche und englische Version der Wikipedia. Ich würde es trotzdem als Fehler melden, damit in der Doku konkretisiert wird, was α und β sein sollen. Das ist da ja recht knapp. Ein Hinweis, dass αβ der Erwartungswert und αβ^2 die Varianz ist, sollte ja schon reichen.
Benutzeravatar
Goswin
User
Beiträge: 366
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

Tja, alles ist so einfach, wenn man es erst einmal weiß.
Vielen Dank für den Hinweis !
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Fuer Bugs in Python (und der Doku) gibt's natuerlich den Bugtracker. :)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten