Learn R Programming

maxLik (version 0.5-6)

maxBFGS: BFGS, SANN and Nelder-Mead Maximization

Description

These functions are wrappers for optim where the arguments are compatible with maxNR

Usage

maxBFGS(fn, grad = NULL, hess=NULL, start, print.level = 0, iterlim = 200,
   tol = 1e-08, reltol=tol, ... )
maxSANN(fn, grad = NULL, hess = NULL, start, print.level = 0, iterlim =
   10000, tol = 1e-08, reltol=tol, temp = 10, tmax = 10, parscale = rep(1, length = length(start)), ...)
maxNM(fn, grad = NULL, hess = NULL, start, print.level = 0, iterlim =
   500, tol = 1e-08, reltol=tol, parscale = rep(1, length = length(start)), alpha = 1, beta = 0.5, gamma = 2, ...)

Arguments

fn
function to be maximised. Must have the parameter vector as the first argument. In order to use numeric gradient and BHHH method, fn must return vector of observation-specific likelihood values. Those are summed by maxNR if
grad
gradient of the function. Must have the parameter vector as the first argument. If NULL, numeric gradient is used (only maxBFGS uses gradient). Gradient may return a matrix, where columns correspond to the parameters and rows t
hess
Hessian of the function. Not used by any of these methods, for compatibility with maxNR.
start
initial values for the parameters.
print.level
a larger number prints more working information.
iterlim
maximum number of iterations.
tol, reltol
the relative convergence tolerance (see optim). tol is for compatibility with maxNR.
temp
controls the '"SANN"' method. It is the starting temperature for the cooling schedule. Defaults to '10'.
tmax
is the number of function evaluations at each temperature for the '"SANN"' method. Defaults to '10'. (see optim)
parscale
A vector of scaling values for the parameters. Optimization is performed on 'par/parscale' and these should be comparable in the sense that a unit change in any element produces about a unit change in the scaled value. (see
alpha, beta, gamma
Scaling parameters for the '"Nelder-Mead"' method. 'alpha' is the reflection factor (default 1.0), 'beta' the contraction factor (0.5) and 'gamma' the expansion factor (2.0). (see optim
...
further arguments for fn and grad.

Value

  • Object of class "maxim":
  • 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 the parameter of Poissonian distribution
n <- rpois(100, 3)
loglik <- function(l) n*log(l) - l - lfactorial(n)
# we use numeric gradient
summary(maxBFGS(loglik, start=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