Learn R Programming

scam (version 1.2-5)

bfgs_gcv.ubre: Multiple Smoothing Parameter Estimation by GCV/UBRE

Description

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.

Usage

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)

Arguments

fn

GCV/UBRE Function which returs the GCV/UBRE value and its derivative wrt log smoothing parameter.

rho

log of the initial values of the smoothing parameters.

ini.fd

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'.

G

A list of items needed to fit a SCAM.

gamma

An ad hoc parametrer of the GCV/UBRE score.

env

Get the enviroment for the model coefficients, their derivatives and the smoothing parameter.

n.pen

Smoothing parameter dimension.

typx

A vector whose component is a positive scalar specifying the typical magnitude of sp.

typf

A positive scalar estimating the magnitude of the gcv near the minimum.

control

Control option list as returned by scam.control.

Value

A list is returned with the following items:

gcv.ubre

The optimal value of GCV/UBRE.

rho

The best value of the log smoothing parameter.

dgcv.ubre

The gradient of the GCV/UBRE.

iterations

The number of iterations taken until convergence.

conv.bfgs

Convergence information indicating why the BFGS terminated (given below).

termcode

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.

object

A list of elements returned by the fitting procedure scam.fit for an optimal value of the smoothing parameter.

dgcv.ubre.check

If check.analytical=TRUE this is the finite-difference approximation of the gradient calculated by gcv.ubre_grad, otherwise NULL.

check.grad

If check.analytical=TRUE this is the relative difference (in and finite differenced derivatives calculated by gcv.ubre_grad, otherwise NULL.

References

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

See Also

scam