class gpr::ObservationLikelihood¶
Overview¶
Contract for non-Gaussian observation models used by the INLA inner Laplace step (Rasmussen-Williams Algorithm 3.1). More…
#include <ObservationLikelihood.h>
class ObservationLikelihood {
public:
// construction
virtual ~ObservationLikelihood();
// methods
virtual double logProb(const Eigen::VectorXd& y, const Eigen::VectorXd& f) const = 0;
virtual Eigen::VectorXd gradLogProb(const Eigen::VectorXd& y, const Eigen::VectorXd& f) const = 0;
virtual Eigen::VectorXd negHessDiag(const Eigen::VectorXd& y, const Eigen::VectorXd& f) const = 0;
};
Detailed Documentation¶
Contract for non-Gaussian observation models used by the INLA inner Laplace step (Rasmussen-Williams Algorithm 3.1).
The likelihood MUST be log-concave so the Newton iteration in findFMode converges; negHessDiag must return >= 0 element-wise.
Methods¶
virtual double logProb(const Eigen::VectorXd& y, const Eigen::VectorXd& f) const = 0
log p(y | f) summed over observations.
virtual Eigen::VectorXd gradLogProb(const Eigen::VectorXd& y, const Eigen::VectorXd& f) const = 0
d/df log p(y|f); same size as f.
virtual Eigen::VectorXd negHessDiag(const Eigen::VectorXd& y, const Eigen::VectorXd& f) const = 0
-diag(d^2/df^2 log p(y|f)). >= 0 element-wise for log-concave likelihoods. Used as W in the R&W Laplace recursion.