提交 16ee436d authored 作者: Chris Fonnesbeck's avatar Chris Fonnesbeck 提交者: Brandon T. Willard

Added Pareto RV

上级 b2229fc7
...@@ -90,6 +90,24 @@ class GammaRV(RandomVariable): ...@@ -90,6 +90,24 @@ class GammaRV(RandomVariable):
gamma = GammaRV() gamma = GammaRV()
class ParetoRV(RandomVariable):
name = "pareto"
ndim_supp = 0
ndims_params = [0, 0]
dtype = "floatX"
_print_name = ("Pareto", "\\operatorname{Pareto}")
def __call__(self, b, scale=1.0, size=None, **kwargs):
return super().__call__(b, scale, size=size, **kwargs)
@classmethod
def rng_fn(cls, rng, b, scale, size):
return stats.pareto.rvs(b, scale=scale, size=size, random_state=rng)
pareto = ParetoRV()
class ExponentialRV(RandomVariable): class ExponentialRV(RandomVariable):
name = "exponential" name = "exponential"
ndim_supp = 0 ndim_supp = 0
......
...@@ -31,6 +31,7 @@ from aesara.tensor.random.basic import ( ...@@ -31,6 +31,7 @@ from aesara.tensor.random.basic import (
multivariate_normal, multivariate_normal,
nbinom, nbinom,
normal, normal,
pareto,
permutation, permutation,
poisson, poisson,
polyagamma, polyagamma,
...@@ -227,6 +228,13 @@ def test_exponential_samples(): ...@@ -227,6 +228,13 @@ def test_exponential_samples():
rv_numpy_tester(exponential, test_lambda, size=[2, 3]) rv_numpy_tester(exponential, test_lambda, size=[2, 3])
def test_pareto_samples():
test_alpha = np.array(0.5, dtype=config.floatX)
rv_numpy_tester(pareto, test_alpha, test_fn=stats.pareto.rvs)
rv_numpy_tester(pareto, test_alpha, size=[2, 3], test_fn=stats.pareto.rvs)
def test_mvnormal_samples(): def test_mvnormal_samples():
def test_fn(mean=None, cov=None, size=None, rng=None): def test_fn(mean=None, cov=None, size=None, rng=None):
if mean is None: if mean is None:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论