diff --git a/aemcmc/conjugates.py b/aemcmc/conjugates.py index 58460e5..36f2a47 100644 --- a/aemcmc/conjugates.py +++ b/aemcmc/conjugates.py @@ -8,7 +8,7 @@ conjugatesdb = OptimizationDatabase() -def beta_binomial_conjugateo(observation_model_expr, value_expr, posterior_expr): +def beta_binomial_conjugateo(observed_rv_expr, posterior_expr): r"""Produce a goal that represents the application of Bayes theorem for a beta prior with a binomial observation model. @@ -25,6 +25,15 @@ def beta_binomial_conjugateo(observation_model_expr, value_expr, posterior_expr) p \sim \operatorname{Beta}\left(\alpha + Y, \beta + n - Y\right) + Parameters + ---------- + observed_rv_expr + A tuple that contains expressions that represent the observed variable + and it observed value respectively. + posterior_exp + An expression that represents the posterior distribution of the latent + variable. + """ # Beta-binomial observation model @@ -55,8 +64,8 @@ def beta_binomial_conjugateo(observation_model_expr, value_expr, posterior_expr) ) return lall( - eq(observation_model_expr, Y_et), - eq(value_expr, y_lv), + eq(observed_rv_expr[0], Y_et), + eq(observed_rv_expr[1], y_lv), eq(posterior_expr, p_posterior_et), ) diff --git a/tests/test_conjugates.py b/tests/test_conjugates.py index ff87e70..c252a94 100644 --- a/tests/test_conjugates.py +++ b/tests/test_conjugates.py @@ -26,7 +26,7 @@ def test_beta_binomial_conjugate_contract(): y_vv.tag.name = "y" q_lv = var() - (posterior_expr,) = run(1, q_lv, beta_binomial_conjugateo(Y_rv, y_vv, q_lv)) + (posterior_expr,) = run(1, q_lv, beta_binomial_conjugateo((Y_rv, y_vv), q_lv)) posterior = eval_if_etuple(posterior_expr) aesara.dprint(posterior)