expect#
- rv_discrete.expect(func=None, args=(), loc=0, lb=None, ub=None, conditional=False, maxcount=1000, tolerance=1e-10, chunksize=32)[Quellcode]#
Berechnet den Erwartungswert einer Funktion bezüglich der Verteilung für diskrete Verteilungen mittels numerischer Summation.
- Parameter:
- funccallable, optional
Funktion, für die der Erwartungswert berechnet wird. Nimmt nur ein Argument. Standardmäßig die Identitätsabbildung f(k) = k.
- argstuple, optional
Formparameter der Verteilung.
- locfloat, optional
Lokationsparameter. Standardwert ist 0.
- lb, ubint, optional
Untere und obere Schranke für die Summation, Standardwert ist auf die Träger der Verteilung festgelegt, einschließlich (
lb <= k <= ub).- conditionalbool, optional
Wenn wahr, dann wird der Erwartungswert durch die bedingte Wahrscheinlichkeit des Summationsintervalls korrigiert. Der Rückgabewert ist der Erwartungswert der Funktion func, bedingt darauf, dass sie sich im gegebenen Intervall befindet (k, sodass
lb <= k <= ub). Standardmäßig False.- maxcountint, optional
Maximale Anzahl der zu evaluierenden Terme (um eine Endlosschleife für eine unendliche Summe zu vermeiden). Standardwert ist 1000.
- tolerancefloat, optional
Absolute Toleranz für die Summation. Standardwert ist 1e-10.
- chunksizeint, optional
Iteriert über den Träger einer Verteilung in Blöcken dieser Größe. Standardwert ist 32.
- Rückgabe:
- expectfloat
Erwartungswert.
Hinweise
Bei stark schwanzigen Verteilungen kann der Erwartungswert existieren oder auch nicht, abhängig von der Funktion func. Wenn er existiert, die Summe aber langsam konvergiert, kann die Genauigkeit des Ergebnisses eher gering sein. Zum Beispiel bei
zipf(4)ist die Genauigkeit für den Mittelwert, die Varianz im Beispiel nur 1e-5. Das Erhöhen von maxcount und/oder chunksize kann das Ergebnis verbessern, aber auch Zipf sehr langsam machen.Die Funktion ist nicht vektorisiert.