This package defines the routines required for computing maximum likelihood estimates and profile likelihoods. The optimisation routines are built around the Optimization.jl interface, allowing us to e.g. easily switch between algorithms, between finite differences and automatic differentiation, and it allows for constraints to be defined with ease. Below we list the definitions we are using for likelihoods and profile likelihoods. This code works for univariate and bivariate profiles.
Definition: Likelihood function (see Casella & Berger, 2002): Let
Definition: Profile likelihood function (see Pawitan, 2001): Suppose we have some parameters of interest,
From Wilk's theorem, we know that
We compute the profile log-likelihood in this package by starting at the MLE, and stepping left/right until we reach a given threshold. The code is iterative to not waste time in so much of the parameter space. In the bivariate case, we start at the MLE and expand outwards in layers. This implementation is described in the documentation.
More detail about the methods we use in this package are given in the documentation, along with several examples.