Source code for hierarc.Likelihood.prior_likelihood
[docs]
class PriorLikelihood(object):
"""Class to define priors for individual lenses, e.g. from lens models etc."""
def __init__(self, prior_list=None):
"""
:param prior_list: list of [[name, mean, sigma], [],...]
"""
if prior_list is None:
prior_list = []
self._prior_list = prior_list
self._param_name_list = []
self._param_mean_list = []
self._param_sigma_list = []
for i, param in enumerate(prior_list):
self._param_name_list.append(param[0])
self._param_mean_list.append(param[1])
self._param_sigma_list.append(param[2])
[docs]
def log_likelihood(self, kwargs):
"""
:param kwargs:
:type kwargs: dict
:return: log likelihood
"""
lnlikelihood = 0
for i, param in enumerate(self._param_name_list):
if param in kwargs:
lnlikelihood -= (kwargs[param] - self._param_mean_list[i]) ** 2 / (
2 * self._param_sigma_list[i] ** 2
)
return lnlikelihood