Creates gradient function from the likelihood function apollo_probabilities provided by the user. Returns NULL if the creation of gradient function fails.
apollo_beta: Named numeric vector. Names and values for parameters.
apollo_fixed: Character vector. Names (as defined in apollo_beta) of parameters whose value should not change during estimation.
apollo_logLike: Function to calculate the log-likelihood of the model, as created by apollo_makeLogLike
If provided, the value of the analytical gradient will be compared to the value of the numerical gradient as calculated using apollo_logLike and the numDeriv package. If the difference between the two is bigger than 1
that the analytical gradient is wrong and NULL will be returned.
validateGrad: Logical. If TRUE, it compares the value of the analytical gradient evaluated at apollo_beta against the numeric gradient (using numDeriv) at the same value. If the difference is bigger than 1
return NULL.
Returns
apollo_gradient function. It receives the following arguments
‘b’ Numeric vector of variable parameters (i.e. must not include fixed parameters).
‘countIter’ Not used. Included only to mirror inputs of apollo_logLike.
‘getNIter’ Not used. Included only to mirror inputs of apollo_logLike.
‘sumLL’ Not used. Included only to mirror inputs of apollo_logLike.
‘writeIter’ Not used. Included only to mirror inputs of apollo_logLike.
If the creation of the gradient function fails, then it returns NULL.
Details
Internal use only. Called by apollo_estimate before estimation. The returned function can be single-threaded or multi-threaded based on the model options.