| calcMin | R Documentation |
Minimization based on the R-stat functions nlm, nlminb, and optim.
Model parameters are scaled and can be active or not in the minimization.
calcMin(pvec, func, method="nlm", trace=0, maxit=1000, reltol=1e-8,
steptol=1e-6, temp=10, repN=0, ...)
pvec |
Initial values of the model parameters to be optimized.
|
func |
The user-defined function to be minimized (or maximized). The function should return a scalar result. |
method |
The minimization method to use: one of |
trace |
Non-negative integer. If positive, tracing information on the
progress of the minimization is produced. Higher values may produce more
tracing information: for method |
maxit |
The maximum number of iterations. Default is |
reltol |
Relative convergence tolerance. The algorithm stops if it is
unable to reduce the value by a factor of |
steptol |
A positive scalar providing the minimum allowable relative step length.
Default is |
temp |
Temperature controlling the |
repN |
Reports the parameter and objective function values on the R-console
every |
... |
Further arguments to be passed to the optimizing function chosen:
|
See optim for details on the following methods: Nelder-Mead,
BFGS, CG, L-BFGS-B, and SANN.
A list with components:
Fout |
The output list from the optimizer function chosen through |
iters |
Number of iterations. |
evals |
Number of evaluations. |
cpuTime |
The user CPU time to execute the minimization. |
elapTime |
The total elapsed time to execute the minimization. |
fminS |
The objective function value calculated at the start of the minimization. |
fminE |
The objective function value calculated at the end of the minimization. |
Pstart |
Starting values for the model parameters. |
Pend |
Final values estimated for the model parameters from the minimization. |
AIC |
Akaike's Information Criterion |
message |
Convergence message from the minimization routine. |
Some arguments to calcMin have no effect depending on the method chosen.
Jon T. Schnute, Pacific Biological Station, Fisheries and Oceans Canada, Nanaimo BC
scalePar, restorePar, calcMin, GT0
In the stats package: nlm, nlminb, and optim.
local(envir=.PBSmodEnv,expr={
Ufun <- function(P) {
Linf <- P[1]; K <- P[2]; t0 <- P[3]; obs <- afile$len;
pred <- Linf * (1 - exp(-K*(afile$age-t0)));
n <- length(obs); ssq <- sum((obs-pred)^2 );
return(n*log(ssq)); };
oldpar = par(no.readonly = TRUE)
afile <- data.frame(age=1:16,len=c(7.36,14.3,21.8,27.6,31.5,35.3,39,
41.1,43.8,45.1,47.4,48.9,50.1,51.7,51.7,54.1));
pvec <- data.frame(val=c(70,0.5,0),min=c(40,0.01,-2),max=c(100,2,2),
active=c(TRUE,TRUE,TRUE),row.names=c("Linf","K","t0"),
stringsAsFactors=FALSE);
alist <- calcMin(pvec=pvec,func=Ufun,method="nlm",steptol=1e-4,repN=10);
print(alist[-1]); P <- alist$Pend;
#resetGraph();
expandGraph();
xnew <- seq(afile$age[1],afile$age[nrow(afile)],len=100);
ynew <- P[1] * (1 - exp(-P[2]*(xnew-P[3])) );
plot(afile); lines(xnew,ynew,col="red",lwd=2);
addLabel(.05,.88,paste(paste(c("Linf","K","t0"),round(P,c(2,4,4)),
sep=" = "),collapse="\n"),adj=0,cex=0.9);
par(oldpar)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.