From 8d70551f8e7ff6530b9b9ad017819200492266c2 Mon Sep 17 00:00:00 2001 From: berkalpay <46028827+berkalpay@users.noreply.github.com> Date: Thu, 19 Dec 2024 18:54:59 -0500 Subject: [PATCH 1/2] implement invgamma icdf + test --- pymc/distributions/continuous.py | 12 +++++++++++- tests/distributions/test_continuous.py | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/pymc/distributions/continuous.py b/pymc/distributions/continuous.py index d5e69fc799..8410968eaa 100644 --- a/pymc/distributions/continuous.py +++ b/pymc/distributions/continuous.py @@ -29,7 +29,7 @@ from pytensor.tensor import gammaln, get_underlying_scalar_constant_value from pytensor.tensor.exceptions import NotScalarConstantError from pytensor.tensor.extra_ops import broadcast_shape -from pytensor.tensor.math import betaincinv, gammaincinv, tanh +from pytensor.tensor.math import betaincinv, gammaincinv, gammainccinv, tanh from pytensor.tensor.random.basic import ( BetaRV, _gamma, @@ -2541,6 +2541,16 @@ def logcdf(value, alpha, beta): msg="alpha > 0, beta > 0", ) + def icdf(value, alpha, beta): + res = beta / gammainccinv(alpha, value) + res = check_icdf_value(res, value) + return check_icdf_parameters( + res, + alpha > 0, + beta > 0, + msg="alpha > 0, beta > 0", + ) + class ChiSquared: r""" diff --git a/tests/distributions/test_continuous.py b/tests/distributions/test_continuous.py index 2864335e34..30317849c4 100644 --- a/tests/distributions/test_continuous.py +++ b/tests/distributions/test_continuous.py @@ -675,6 +675,13 @@ def test_inverse_gamma_logp(self): lambda value, alpha, beta: st.invgamma.logpdf(value, alpha, scale=beta), ) + def test_inverse_gamma_icdf(self): + check_icdf( + pm.InverseGamma, + {"alpha": Rplusbig, "beta": Rplusbig}, + lambda q, alpha, beta: st.invgamma.ppf(q, alpha, scale=beta), + ) + @pytest.mark.skipif( condition=(pytensor.config.floatX == "float32"), reason="Fails on float32 due to numerical issues", From 1a2c6e810a031ee00a77a33f1d040f06e8ccc352 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 20:41:20 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pymc/distributions/continuous.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymc/distributions/continuous.py b/pymc/distributions/continuous.py index 8410968eaa..8fe32b1b46 100644 --- a/pymc/distributions/continuous.py +++ b/pymc/distributions/continuous.py @@ -29,7 +29,7 @@ from pytensor.tensor import gammaln, get_underlying_scalar_constant_value from pytensor.tensor.exceptions import NotScalarConstantError from pytensor.tensor.extra_ops import broadcast_shape -from pytensor.tensor.math import betaincinv, gammaincinv, gammainccinv, tanh +from pytensor.tensor.math import betaincinv, gammainccinv, gammaincinv, tanh from pytensor.tensor.random.basic import ( BetaRV, _gamma,