Learn R Programming

micEcon (version 0.2-4)

maxBFGS: BFGS maximisation

Description

This function is a wrapper for optim where the arguments are compatible with maxNR

Usage

maxBFGS(fn, grad = NULL, theta, print.level = 0, iterlim = 200,
   tol = 1e-06, ... )

Arguments

fn
function to be maximised. In order to use numeric gradient and BHHH method, fn must return vector of observation-specific likelihood values. Those are summed by maxNR if necessary. If the parameters are out of range, fn
grad
gradient of the function. If NULL, numeric gradient is used. For BHHH method it must return a matrix, where rows corresponds to the gradients of the observations. Note that this corresponds to t(numericGradient(fn))
theta
initial values for the parameters to be optimized over.
print.level
a larger number prints more working information.
iterlim
maximum number of iterations.
tol
the absolute convergence tolerance (see optim).
...
further arguments for fn and grad.

Value

  • Object of class "maximisation":
  • maximumvalue of fn at maximum.
  • estimatebest set of parameters found.
  • gradientgradient at parameter value estimate.
  • hessianvalue of Hessian at optimum.
  • codeinteger. Success code, 0 is success (see optim).
  • messagecharacter string giving any additional information returned by the optimizer, or NULL.
  • iterationstwo-element integer vector giving the number of calls to fn and gr, respectively. This excludes those calls needed to compute the Hessian, if requested, and any calls to fn to compute a finite-difference approximation to the gradient.
  • typecharacter string "BFGS maximisation".

See Also

optim, nlm, maxNR, maxBHHH.

Examples

Run this code
# Maximum Likelihood estimation of Poissonian distribution
n <- rpois(100, 3)
loglik <- function(l) n*log(l) - l - lfactorial(n)
# we use numeric gradient
summary(maxBFGS(loglik, theta=1))
# you would probably prefer mean(n) instead of that ;-)
# Note also that maxLik is better suited for Maximum Likelihood

Run the code above in your browser using DataLab