Pseudo-likelihood inference of a Gibsian T-tessellation with alternate updates. More...
#include <ttessel.h>
Public Member Functions | |
PLInferenceNOIS (Energy *, bool=false, double=1.0) | |
Generate a PLInferenceNOIS object. More... | |
double | GetStepSize () |
Return step size used in Newton's method. | |
void | SetStepSize (double lambda) |
Set step size used in Newton's method. | |
void | Step (unsigned int=1) |
Proceed to several iterations of the estimation algorithm. More... | |
CatVector | GetEstimate () |
Access to the current parameter estimate. | |
unsigned int | Run (double=0.05, unsigned int=100) |
Iterate the estimation algorithm until convergence. More... | |
std::vector< CatVector > | GetEstimates () |
Return all intermediate parameter estimates. | |
std::vector< double > | GetValues () |
Return all intermediate log-pseudolikelihood values. | |
Public Member Functions inherited from PseudoLikDiscrete | |
PseudoLikDiscrete (Energy *) | |
Constructor initializing the model to be considered. More... | |
Energy * | GetEnergy () |
Get the Energy data member. | |
void | SetEnergy (Energy *e) |
Set the Energy data member. | |
void | AddSplits (Size) |
Increment the sample of dummy splits. More... | |
void | AddGivenSplit (TTessel::Split) |
Add a given dummy split. More... | |
std::vector< CatVector > | GetSplitStatistics () |
Return the split term of the discrete approximation of the log-pseudolikelihood. | |
std::vector< CatVector > | GetFlipStatistics () |
Return the flip term of the discrete approximation of the log-pseudolikelihood. | |
void | ClearSplits () |
Remove all dummy splits. | |
double | GetValue (CatVector) |
Return log-pseudo-likelihood value. More... | |
CatVector | GetGradient (CatVector) |
Return pseudo-likelihood gradient. More... | |
CatMatrix | GetHessian (CatVector) |
Return the Hessian of the log-pseudolikelihood. | |
Pseudo-likelihood inference of a Gibsian T-tessellation with alternate updates.
Numerical maximization of the pseudo-likelihood. Each step consists of a double update. First, dummy splits are added to the discrete approximation of the pseudo-likelihood (see class PseudoLikDiscrete). Second, the current parameter estimate is updated according to Newton's method based on the Hessian of the approximated pseudo-likelihood.
PLInferenceNOIS::PLInferenceNOIS | ( | Energy * | eng, |
bool | store = false , |
||
double | lambda = 1.0 |
||
) |
Generate a PLInferenceNOIS object.
eng | : a pointer to an Energy object defining the model to be fitted |
store | : whether the intermediate estimates and log-pseudolikelihood approximations should be stored |
lambda | : stepsize to be used when updating the estimate |
unsigned int PLInferenceNOIS::Run | ( | double | tol = 0.05 , |
unsigned int | nmax = 100 |
||
) |
Iterate the estimation algorithm until convergence.
tol | : target relative precision. Must be between 0 and 1. |
nmax | : maximal number of iterations |
Proceed to iterations of the inference algorithm (see documentation of method Step) until the stopping criterion is met. One stops when either nmax iterations have been performed or when the log-pseudolikelihood approximation (lp) has been reduced by a factor less than tol*(abs(lp)+tol).
void PLInferenceNOIS::Step | ( | unsigned int | n = 1 | ) |
Proceed to several iterations of the estimation algorithm.
n | : number of iterations |