The optimization routines 'ucminf', 'nloptr' and 'trustOptim' requires the
user to supply a gradient. Writing an analytical gradient can be quite
cumbersome for very complex likelihood expressions. This function is a simple
numDeriv::grad() and prepares a high-precision
numerical gradient that can be supplied directly to the optimizers that
Note that a numerical gradient is slower in calculation and less precise than
an analytical gradient.
prepare_num_grad(ll, estim_env, workers)
This is the 'raw' log-likelihood function passed to the estimation routine. It is important that the user takes into account whether the optimization routine is a minimizer (e.g. 'ucminf') or a maximizer (e.g. 'maxlik').
An estimation environment returned by
A list of workers created using the parallel package
A high precision numerical gradient function