Skip to content
Snippets Groups Projects
Commit c13ce820 authored by Antonello, Dr. Massimiliano's avatar Antonello, Dr. Massimiliano
Browse files

Formatting

parent 3064373b
No related branches found
No related tags found
No related merge requests found
import numpy as np import numpy as np
from scipy.stats import rv_discrete, uniform from scipy.stats import rv_discrete, uniform
import scipy.special as sc import scipy.special as sc
from scipy.stats._distn_infrastructure import (rv_discrete, get_distribution_names)
from scipy.stats._distn_infrastructure import (
rv_discrete, get_distribution_names)
class gpd_gen(rv_discrete): class gpd_gen(rv_discrete):
def _argcheck(self, mu, lbda): def _argcheck(self, mu, lbda):
return mu >= 0.0 and lbda >= 0.0 and lbda <= 1.0 return mu >= 0.0 and lbda >= 0.0 and lbda <= 1.0
def _rvs(self, mu, lbda): def _rvs(self, mu, lbda):
population = np.asarray( population = np.asarray(self._random_state.poisson(mu, self._size))
self._random_state.poisson(mu, self._size)
)
if population.shape == (): if population.shape == ():
population = population.reshape(-1) population = population.reshape(-1)
offspring = population.copy() offspring = population.copy()
while np.any(offspring > 0): while np.any(offspring > 0):
# probability dists are NOT ufuncs # probability dists are NOT ufuncs
# print("offspring", offspring) # print("offspring", offspring)
offspring[:] = [ offspring[:] = [self._random_state.poisson(m) for m in lbda*offspring]
self._random_state.poisson(m)
for m in lbda*offspring
]
population += offspring population += offspring
return population return population
...@@ -41,10 +32,8 @@ class gpd_gen(rv_discrete): ...@@ -41,10 +32,8 @@ class gpd_gen(rv_discrete):
elif n == 2: elif n == 2:
return (mu/(1-lbda))**2+mu/(1-lbda)**3 return (mu/(1-lbda))**2+mu/(1-lbda)**3
gpoisson = gpd_gen(name='gpoisson') gpoisson = gpd_gen(name='gpoisson')
class borel_gen(rv_discrete): class borel_gen(rv_discrete):
def _argcheck(self, mu): def _argcheck(self, mu):
return ((mu > 0) & (mu<1)) return ((mu > 0) & (mu<1))
...@@ -82,7 +71,6 @@ class borel_gen(rv_discrete): ...@@ -82,7 +71,6 @@ class borel_gen(rv_discrete):
return _rnd return _rnd
def _stats(self, mu): def _stats(self, mu):
_mu = 1/(1-mu) _mu = 1/(1-mu)
_var = mu/(1-mu)**3 _var = mu/(1-mu)**3
...@@ -93,15 +81,9 @@ class borel_gen(rv_discrete): ...@@ -93,15 +81,9 @@ class borel_gen(rv_discrete):
g2 = scipy._lib._util._lazywhere(mu_nonzero, (tmp,), lambda x: 3 + (1 + 8*x+6*x**2)/(x*(1-x)), np.inf) g2 = scipy._lib._util._lazywhere(mu_nonzero, (tmp,), lambda x: 3 + (1 + 8*x+6*x**2)/(x*(1-x)), np.inf)
return _mu, _var, g1, g2 return _mu, _var, g1, g2
borel= borel_gen(name='borel') borel= borel_gen(name='borel')
class erlang_gen(rv_discrete): class erlang_gen(rv_discrete):
def _pdf(self, x, a): def _pdf(self, x, a):
# gamma.pdf(x, a) = x**(a-1) * exp(-x) / gamma(a) # gamma.pdf(x, a) = x**(a-1) * exp(-x) / gamma(a)
return np.exp(self._logpdf(x, a)) return np.exp(self._logpdf(x, a))
...@@ -109,11 +91,6 @@ class erlang_gen(rv_discrete): ...@@ -109,11 +91,6 @@ class erlang_gen(rv_discrete):
def _logpdf(self, k, mu, nu): def _logpdf(self, k, mu, nu):
return sc.xlogy(a-1.0, x) - x - sc.gammaln(a) return sc.xlogy(a-1.0, x) - x - sc.gammaln(a)
# def _rvs(self, mu, nu, size=None, random_state=None): # def _rvs(self, mu, nu, size=None, random_state=None):
# u = scipy.stats.uniform.rvs(loc=0, scale = 1, size=size) # u = scipy.stats.uniform.rvs(loc=0, scale = 1, size=size)
# cum = np.cumsum([self._pmf(_k, mu, nu) for _k in range(0, 100)]) # cum = np.cumsum([self._pmf(_k, mu, nu) for _k in range(0, 100)])
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment