bart.likelihood#

Module: bart.likelihood#

We want to evaluate

$$ int_{mathbb{R}} frac{1}{(2pisigma^2)^{n/2}} frac{1}{sqrt{2 pi sigma^2_{mu}}} expleft(-frac{1}{2sigma^2} sum_{i=1}^n (R_i-mu)^2 - frac{1}{2 sigma^2_{mu}}(mu-mu_0)^2 right) ; dmu $$

Clearly depends on \(R\) only through \(\bar{R}\) and \(\|R-\bar{R}\|^2_2\) $$ = frac{exp left(-frac{1}{2sigma^2} |R-bar{R}|^2_2right)}{(2pisigma^2)^{n/2}} int_{mathbb{R}} frac{1}{sqrt{2 pi sigma^2_{mu}}} expleft(-frac{n}{2sigma^2} (bar{R}-mu)^2 - frac{1}{2 sigma^2_{mu}}(mu-mu_0)^2 right) ; dmu $$

Expanding: $$ =frac{expleft(-frac{1}{2sigma^2} |R-bar{R}|^2_2-frac{n}{2sigma^2}bar{R}^2-frac{mu_0^2}{2sigma^2_{mu}}right)}{(2pisigma^2)^{n/2}sqrt{2 pi sigma^2_{mu}}} int_{mathbb{R}} expleft(-left(frac{n}{2sigma^2} + frac{1}{2 sigma^2_{mu}}right)mu^2 + mu left(frac{bar{R} cdot n}{sigma^2} + frac{mu_0}{sigma^2_{mu}}right)right) ; dmu $$

Setting $$ bar{sigma}^{2} = left(frac{n}{2 sigma^2} + frac{1}{2 sigma^2_{mu}}right)^{-1} $$ this is $$ =frac{expleft(-frac{1}{2sigma^2} |R|^2_2-frac{mu_0^2}{2sigma^2_{mu}}right)}{(2pisigma^2)^{n/2}sqrt{2 pi sigma^2_{mu}}} cdot sqrt{2 pi bar{sigma}^2} int_{mathbb{R}} frac{1}{sqrt{2pibar{sigma}^2}} expleft(-frac{1}{2 bar{sigma}^2} mu^2 + mu left(frac{bar{R} cdot n}{sigma^2} + frac{mu_0}{sigma^2_{mu}}right)right) ; dmu $$

Finally, this is $$ =frac{expleft(-frac{1}{2sigma^2} |R|^2_2-frac{mu_0^2}{2sigma^2_{mu}}right)}{(2pisigma^2)^{n/2}sqrt{2 pi sigma^2_{mu}}} cdot sqrt{2 pi bar{sigma}^2} expleft(frac{bar{sigma}^2}{2} left(frac{bar{R} cdot n}{sigma^2} + frac{mu_0}{sigma^2_{mu}}right)^2 right) $$

Or, setting $$ bar{mu} = frac{frac{bar{R} cdot n}{sigma^2} + frac{mu_0}{sigma^2_{mu}}}{frac{n}{sigma^2} + frac{1}{sigma^2_{mu}}} $$ this is $$ =frac{expleft(-frac{1}{2sigma^2} |R|^2_2 -frac{mu_0^2}{2sigma^2_{mu}}right)}{(2pisigma^2)^{n/2}sqrt{2 pi sigma^2_{mu}}} cdot sqrt{2 pi bar{sigma}^2} expleft(frac{1}{2bar{sigma}^2} bar{mu}^2 right) $$

Functions#

ISLP.bart.likelihood.incremental_loglikelihood(response, idx_L, idx_R, sigmasq, mu_prior_mean, mu_prior_var)#
ISLP.bart.likelihood.marginal_loglikelihood(response, sigmasq, mu_prior_mean, mu_prior_var, incremental=False, response_moments=None)#