Function to efficiently estimate smoothing parameters of SCAM by GCV/UBRE score optimization. The procedure is outer to the model fitting by the Newton-Raphson method. The function uses the BFGS method where the Hessian matrix is updated iteratively at each step. Backtracking is included to satisfy the sufficient decrease condition.
The function is not normally called directly, but rather service routines for scam
.
bfgs_gcv.ubre(fn=gcv.ubre_grad, rho, ini.fd=TRUE, G, gamma=1, env,
n.pen=length(rho), typx=rep(1,n.pen), typf=1,
control)
GCV/UBRE Function which returs the GCV/UBRE value and its derivative wrt log smoothing parameter.
log of the initial values of the smoothing parameters.
If TRUE, a finite difference to the Hessian is used to find the initial inverse Hessian, otherwise the initial inverse Hessian is a diagonal matrix `100*I'.
A list of items needed to fit a SCAM.
An ad hoc parametrer of the GCV/UBRE score.
Get the enviroment for the model coefficients, their derivatives and the smoothing parameter.
Smoothing parameter dimension.
A vector whose component is a positive scalar specifying the typical magnitude of sp.
A positive scalar estimating the magnitude of the gcv near the minimum.
Control option list as returned by scam.control
.
A list is returned with the following items:
The optimal value of GCV/UBRE.
The best value of the log smoothing parameter.
The gradient of the GCV/UBRE.
The number of iterations taken until convergence.
Convergence information indicating why the BFGS terminated (given below).
An integer code indicating why the optimization process terminated.
1: relative gradient is close to zero, current iterate probably is a solution.
2: scaled distance between last two steps less than `steptol', current iterate probably is a local minimizer, but it's possible that the algorithm is making very slow progress, or `steptol' is too large.
3: last global step failed to locate a point lower than
estimate. Either estimate is an approximate
local minimum of the function or steptol
is too
small.
4: iteration limit exceeded.
5: five consecutive steps of length maxNstep
have been taken, it's possible that `maxstep' is too small.
A list of elements returned by the fitting procedure scam.fit
for an optimal value of the smoothing parameter.
If check.analytical=TRUE
this is the finite-difference approximation of the gradient calculated by
gcv.ubre_grad
, otherwise NULL
.
If check.analytical=TRUE
this is the relative difference (in
and finite differenced derivatives calculated by gcv.ubre_grad
, otherwise NULL
.
Pya, N. and Wood, S.N. (2015) Shape constrained additive models. Statistics and Computing, 25(3), 543-559
Pya, N. (2010) Additive models with shape constraints. PhD thesis. University of Bath. Department of Mathematical Sciences
Wood, S.N. (2011) Fast stable restricted maximum likelihood and marginal likelihood estimation of semiparametric generalized linear models. Journal of the Royal Statistical Society: Series B. 73(1): 1--34