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.