Description Usage Arguments Details Value References See Also
These functions are used by the scoring optimization algorithms in order to choose the step size.
1 2 3 | Brent.fmin(a = 0, b, fcn, tol = .Machine$double.eps^0.25, ...)
linesearch(b, fcn, grd, ftol = 0.0001, gtol = 0.9, ...)
step.maxsize(x, xlo, xup, pd, cap = 1)
|
a |
a numeric, lower end point of the interval where a line search procedure will search for the optimum step size. It should be zero or a positive value. |
b |
a numeric, upper end point of the searching interval. |
fcn |
a function to be optimized with respect to the step size. |
tol |
the tolerance for convergence of the line search procedure. |
grd |
a function returning the gradient of |
ftol |
a numeric, tolerance of the Wolfe condition related to the value of the function. |
gtol |
a numeric, tolerance of the Wolfe condition related to the gradient. |
x |
a numeric containing the current value of the parameters. |
xlo |
a numeric, lower bounds of the parameters of the model. |
xup |
a numeric, upper bounds of the parameters of the model. |
pd |
a numeric, direction vector chosen by the scoring algorithm. |
cap |
the maximum step size allowed, the default is 1. |
... |
arguments to be passed to the objective function or the gradient. |
These functions are intended to be called by other functions,
not to be used directly by the user.
For details about how fcn
and grd
should be defined see
the source code of maxlik.fd.scoring
and maxlik.td.scoring
.
The default line search procedure used by the scoring algorithms is the
univariate optimization function optimize
from
package stats
.
The functions linesearch
and Brent.fmin
are used for debugging,
didactic and experimental purposes.
They provide useful information when testing
the scoring algorithm and allowed easy tune of some parameters of the line search
procedure. This kind of information and options are not available for example
in optim
from package stats.
Brent.fmin
is a version ported directly from the R sources
(procedure Brent_fmin
in file ‘optimize.c’).
linesearch
is based on Nocedal and Wright (2006) chapter 3
and Pollock (1999) Chapter 12. It can be used
to test the effect and role of the Wolfe conditions.
The function step.maxsize
is not a line search procedure.
Given the direction vector chosen by the scoring algorithm,
this function returns the upper end of the interval where the line search procedure
will search for the optimum step size. It ensures that for any step size inside the interval
from 0 to the returned value the updated parameter values abide to the
lower and upper bounds.
This approach is also used by A. Clausen in his implementation of the
BFGS algorithm.
The use of this function is a simple alternative to reparameterizations of the model
and to the idea implemented in the L-BFGS-B algorithm in order to deal with this
kind of constraints.
Brent.fmin
and linesearch
return a list containing:
vx |
a vector containing the optimal value at each iteration during the bracketing. |
minimum |
the optimal value found in the last iteration. |
fx |
the value of the function for the optimal step size. |
iter |
number of iterations employed by the procedure. |
counts |
number of calls to the objective function. For |
step.maxsize
returns a numeric containing the highest possible that is
compatible with the arguments passed to the function (direction vector and bounds).
Brent, R. (1973) Algorithms for Minimization without Derivatives. Prentice-Hall.
Clausen, A. R code for the BFGS algorithm. http://economics.sas.upenn.edu/~clausen/computing/optim.php.
Nocedal, J. and Wright, J. W. (2006). Numerical Optimization. Springer-Verlag.
Pollock, D.S.G. (1999). A Handbook of Time-Series Analysis Signal Processing and Dynamics. Academic Press.
maxlik.fd.scoring
,
maxlik.td.scoring
.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.