Sök…


Negativ binomial på positiva realer

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

Det är viktigt att definiera antingen _pdf eller _cdf eftersom scipy tillhandahåller parametrarna för den andra funktionen (som du inte definierar) och ordningen på dessa parametrar i alla funktionssamtal som du gör från din definition. I detta fall finns det bara en distributionsparameter, lambda. Variabeln som representerar det slumpmässiga variabelvärdet visas först i definitionen av _pdf eller _cdf.

När du definierar bara en av dessa funktioner beräknar scipy den andra numeriskt. Definiera båda för möjlig större effektivitet. På samma sätt definiera _statistik i termer av kända parametrar för bästa effektivitet; annars använder scipy numeriska metoder.

Lägg märke till att distributionsstödet definieras när klassen instanseras (variabel a är inställd på noll och b är inställd till oändlighet som standard), snarare än när den underklassas. Lägg också märke till att distributionens parametrar endast ställs in när ett av klassinstansen anropas, som i de fem sista kodraderna.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow