outeropt {CollocInfer}  R Documentation 
Outer Optimization Functions
Description
Outer optimization; performs profiled estimation.
Usage
outeropt(data,times,pars,coefs,lik,proc,
in.meth='nlminb',out.meth='nlminb',
control.in=list(),control.out=list(),active=1:length(pars))
Arguments
data 
Matrix of observed data values. 
times 
Vector observation times for the data. 
pars 
Initial values of parameters to be estimated processes. 
coefs 
Vector giving the current estimate of the coefficients in the spline. 
lik 

proc 

in.meth 
Inner optimization function currently one of 'nlminb', 'maxNR', 'optim' or 'SplineEst'. The last calls 
out.meth 
Outer optimization function to be used, one of 'optim' (defaults to BFGS routine in 
control.in 
Control object for inner optimization function. 
control.out 
Control object for outer optimization function. 
active 
Indices indicating which parameters of 
Details
The outer optimization for parameters looks only at the objective defined by the lik
object. For every parameter value, coefs
are optimized by inneropt
and then the value of
lik
for these coefficients is computed.
A number of optimization routines can be used here, some experimentation is recommended. Libraries
for these optimization routines are not preloaded. Where these functions take options as explicit arguments
instead of a list, they should be listed in control.out
and will be called by their names.
The routine creates
temporary files 'curcoefs.tmp' and 'optcoefs.tmp' to update coefficients as pars
evolves. These overwrite
existing files of those names and are deleted before the function terminates.
Value
A list containing
pars 
Optimized parameters 
coefs 
Optimized coefficients at 
res 
The result of the outer optimization. 
counter 
A set of parameters and objective values for each successful iteration. 
See Also
inneropt
, Profile.LS
, ProfileSSE
, ProfileErr
, LS.setup
, multinorm.setup
Examples
## Not run:
data(FhNdata)
knots = seq(0,20,0.2) # Create a basis
norder = 3
nbasis = length(knots) + norder  2
range = c(0,20)
bbasis = create.bspline.basis(range=range,nbasis=nbasis,norder=norder,breaks=knots)
lambda = 10000 # Penalty value
DEfd = smooth.basis(FhNtimes,FhNdata,fdPar(bbasis,1,0.5)) # Smooth to estimate
# coefficients first
coefs = DEfd$fd$coefs
colnames(coefs) = FhNvarnames
profile.obj = LS.setup(pars=FhNpars,coefs=coefs,fn=make.fhn(),basisvals=bbasis,
lambda=lambda,times=FhNtimes)
lik = profile.obj$lik
proc= profile.obj$proc
res = outeropt(data=FhNdata,times=FhNtimes,pars=FhNpars,coefs=coefs,lik=lik,proc=proc,
in.meth="nlminb",out.meth="nlminb",control.in=NULL,control.out=NULL)
plot(res$coefs,main='outeropt')
print(blah)
## End(Not run)