scipy
rv_continuous voor distributie met parameters
Zoeken…
Negatief binomiaal op positieve reals
from scipy.stats import rv_continuous
import numpy
class Neg_exp(rv_continuous):
def _cdf(self, x, lamda):
return 1-numpy.exp(-lamda*x)
neg_exp = Neg_exp(name="Negative exponential", a=0)
print (neg_exp.pdf(0,.5))
print (neg_exp.pdf(5,.5))
print (neg_exp.cdf(5,.5))
print (neg_exp.stats(0.5))
print (neg_exp.rvs(0.5))
Het is essentieel om _pdf of _cdf te definiëren omdat scipy de parameters van de andere functie (die u niet definieert), en de volgorde van deze parameters in alle functieaanroepen die u maakt, afleidt vanuit uw definitie. In dit geval is er slechts één distributieparameter, lambda. De variabele die de waarde van de willekeurige variabele vertegenwoordigt, verschijnt eerst in de definitie van _pdf of _cdf.
Wanneer u slechts een van deze functies definieert, berekent Scipy de andere numeriek. Voor beide een grotere efficiëntie, definieer beide. Definieer op dezelfde manier _statistieken in termen van bekende parameters voor de beste efficiëntie; anders gebruikt scipy numerieke methoden.
Merk op dat de ondersteuning van de distributie wordt gedefinieerd wanneer de klasse wordt geïnstantieerd (variabele a is ingesteld op nul en b is standaard ingesteld op oneindig), in plaats van wanneer deze wordt onderverdeeld. Merk ook op dat de parameters van de distributie alleen worden ingesteld wanneer een van de klasse-instanties wordt aangeroepen, zoals in de laatste vijf regels code.