Source code for UQpy.inference.inference_models.LogLikelihoodModel

from typing import Callable

import numpy as np
from beartype import beartype
import warnings

warnings.filterwarnings('ignore')

from UQpy.inference.inference_models.baseclass.InferenceModel import *


[docs]class LogLikelihoodModel(InferenceModel): @beartype def __init__(self, n_parameters: PositiveInteger, log_likelihood: Callable, name: str = ""): """ Define a log-likelihood model for inference. :param n_parameters: Number of parameters to be estimated. :param log_likelihood: Function that defines the log-likelihood model. :param name: Name of model - optional but useful in a model selection setting. """ super().__init__(n_parameters, name) self.name = name self.log_likelihood = log_likelihood self.n_parameters = n_parameters def evaluate_log_likelihood(self, parameters: np.ndarray, data: np.ndarray): log_like_values = self.log_likelihood(data=data, params=parameters) if not isinstance(log_like_values, np.ndarray): log_like_values = np.array(log_like_values) if log_like_values.shape != (parameters.shape[0],): raise ValueError("UQpy: Likelihood function should output a (nsamples, ) ndarray of likelihood values.") return log_like_values