# residSVD: Multiplicative Approximation of Model Residuals In gnm: Generalized Nonlinear Models

 residSVD R Documentation

## Multiplicative Approximation of Model Residuals

### Description

This function uses the first `d` components of the singular value decomposition in order to approximate a vector of model residuals by a sum of `d` multiplicative terms, with the multiplicative structure determined by two specified factors. It applies to models of class `lm`, `glm` or `gnm`.

### Usage

```residSVD(model, fac1, fac2, d = 1)
```

### Arguments

 `model` an object of class `gnm`, `glm` or `lm` `fac1` a factor `fac2` a factor `d` integer, the number of multiplicative terms to use in the approximation

### Details

This function operates on the matrix of mean residuals, with rows indexed by `fac1` and columns indexed by `fac2`. For `glm` and `glm` models, the matrix entries are weighted working residuals. The primary use of `residSVD` is to generate good starting values for the parameters in `Mult` terms in models to be fitted using `gnm`.

### Value

If `d = 1`, a numeric vector; otherwise a numeric matrix with `d` columns.

### Author(s)

David Firth and Heather Turner

`gnm`, `Mult`

### Examples

```set.seed(1)

##  Goodman RC1  association model fits well (deviance 3.57, df 8)
mentalHealth\$MHS <- C(mentalHealth\$MHS, treatment)
mentalHealth\$SES <- C(mentalHealth\$SES, treatment)
## independence model
indep <- gnm(count ~ SES + MHS, family = poisson, data = mentalHealth)
mult1 <- residSVD(indep, SES, MHS)
## Now use mult1 as starting values for the RC1 association parameters
RC1model <- update(indep, . ~ . + Mult(SES, MHS),
start = c(coef(indep), mult1), trace = TRUE)
##  Similarly for the RC2 model:
mult2 <- residSVD(indep, SES, MHS, d = 2)
RC2model <- update(indep, . ~ . + instances(Mult(SES, MHS), 2),
start = c(coef(indep), mult2), trace = TRUE)
##