# vgam.control: Control Function for vgam() In VGAM: Vector Generalized Linear and Additive Models

## Description

Algorithmic constants and parameters for running `vgam` are set using this function.

## Usage

 ```1 2 3 4 5 6 7 8 9``` ```vgam.control(all.knots = FALSE, bf.epsilon = 1e-07, bf.maxit = 30, checkwz=TRUE, Check.rank = TRUE, Check.cm.rank = TRUE, criterion = names(.min.criterion.VGAM), epsilon = 1e-07, maxit = 30, Maxit.outer = 10, noWarning = FALSE, na.action = na.fail, nk = NULL, save.weights = FALSE, se.fit = TRUE, trace = FALSE, wzepsilon = .Machine\$double.eps^0.75, xij = NULL, gamma.arg = 1, ...) ```

## Arguments

 `all.knots` logical indicating if all distinct points of the smoothing variables are to be used as knots. By default, `all.knots=TRUE` for n <= 40, and for n > 40, the number of knots is approximately 40 + (n-40)^0.25. This increases very slowly with n so that the number of knots is approximately between 50 and 60 for large n. `bf.epsilon` tolerance used by the modified vector backfitting algorithm for testing convergence. Must be a positive number. `bf.maxit` maximum number of iterations allowed in the modified vector backfitting algorithm. Must be a positive integer. `checkwz` logical indicating whether the diagonal elements of the working weight matrices should be checked whether they are sufficiently positive, i.e., greater than `wzepsilon`. If not, any values less than `wzepsilon` are replaced with this value. `Check.rank, Check.cm.rank` See `vglm.control`. `criterion` character variable describing what criterion is to be used to test for convergence. The possibilities are listed in `.min.criterion.VGAM`, but most family functions only implement a few of these. `epsilon` positive convergence tolerance epsilon. Roughly speaking, the Newton-Raphson/Fisher-scoring/local-scoring iterations are assumed to have converged when two successive `criterion` values are within `epsilon` of each other. `maxit` maximum number of Newton-Raphson/Fisher-scoring/local-scoring iterations allowed. `Maxit.outer` maximum number of outer iterations allowed when there are `sm.os` or `sm.ps` terms. See `vgam` for a little information about the default outer iteration. Note that one can use performance iteration by setting `Maxit.outer = 1`; then the smoothing parameters will be automatically chosen at each IRLS iteration (some specific programming allows this). `na.action` how to handle missing values. Unlike the SPLUS `gam` function, `vgam` cannot handle `NA`s when smoothing. `nk` vector of length d containing positive integers. where d be the number of `s` terms in the formula. Recycling is used if necessary. The ith value is the number of B-spline coefficients to be estimated for each component function of the ith `s()` term. `nk` differs from the number of knots by some constant. If specified, `nk` overrides the automatic knot selection procedure. `save.weights` logical indicating whether the `weights` slot of a `"vglm"` object will be saved on the object. If not, it will be reconstructed when needed, e.g., `summary`. `se.fit` logical indicating whether approximate pointwise standard errors are to be saved on the object. If `TRUE`, then these can be plotted with `plot(..., se = TRUE)`. `trace` logical indicating if output should be produced for each iteration. `wzepsilon` Small positive number used to test whether the diagonals of the working weight matrices are sufficiently positive.
 `noWarning` Same as `vglm.control`. `xij` Same as `vglm.control`. `gamma.arg` Numeric; same as `gamma` in `magic`. Inflation factor for optimizing the UBRE/GCV criterion. If given, a suggested value is 1.4 to help avoid overfitting, based on the work of Gu and co-workers (values between 1.2 and 1.4 appeared reasonable, based on simulations). A warning may be given if the value is deemed out-of-range. `...` other parameters that may be picked up from control functions that are specific to the VGAM family function.

## Details

Most of the control parameters are used within `vgam.fit` and you will have to look at that to understand the full details. Many of the control parameters are used in a similar manner by `vglm.fit` (`vglm`) because the algorithm (IRLS) is very similar.

Setting `save.weights=FALSE` is useful for some models because the `weights` slot of the object is often the largest and so less memory is used to store the object. However, for some VGAM family function, it is necessary to set `save.weights=TRUE` because the `weights` slot cannot be reconstructed later.

## Value

A list with components matching the input names. A little error checking is done, but not much. The list is assigned to the `control` slot of `vgam` objects.

## Warning

See `vglm.control`.

## Note

`vgam` does not implement half-stepsizing, therefore parametric models should be fitted with `vglm`. Also, `vgam` is slower than `vglm` too.

Thomas W. Yee

## References

Yee, T. W. and Wild, C. J. (1996). Vector generalized additive models. Journal of the Royal Statistical Society, Series B, Methodological, 58, 481–493.

`vgam`, `vglm.control`, `vsmooth.spline`, `vglm`.
 ```1 2 3``` ```pneumo <- transform(pneumo, let = log(exposure.time)) vgam(cbind(normal, mild, severe) ~ s(let, df = 2), multinomial, data = pneumo, trace = TRUE, eps = 1e-4, maxit = 10) ```