R: Multiple Smoothing Parameter Estimation by GCV/UBRE

bfgs_gcv.ubre {scam} | R Documentation

## 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`.

### Author(s)

Natalya Pya <nat.pya@gmail.com>

### 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`

[Package scam version 1.2-12 Index]