# lvplot.rrvglm

##### Latent Variable Plot for RR-VGLMs

Produces an *ordination diagram* (also known as a *biplot* or
*latent variable plot*) for *reduced-rank vector generalized
linear models* (RR-VGLMs). For rank-2 models only, the x- and y-axis
are the first and second canonical axes respectively.

- Keywords
- models, regression, graphs

##### Usage

```
lvplot.rrvglm(object,
A = TRUE, C = TRUE, scores = FALSE, show.plot = TRUE,
groups = rep(1, n), gapC = sqrt(sum(par()$cxy^2)),
scaleA = 1,
xlab = "Latent Variable 1", ylab = "Latent Variable 2",
Alabels = if (length(object@misc$predictors.names))
object@misc$predictors.names else paste("LP", 1:M, sep = ""),
Aadj = par()$adj, Acex = par()$cex, Acol = par()$col,
Apch = NULL,
Clabels = rownames(Cmat), Cadj = par()$adj,
Ccex = par()$cex, Ccol = par()$col, Clty = par()$lty,
Clwd = par()$lwd,
chull.arg = FALSE, ccex = par()$cex, ccol = par()$col,
clty = par()$lty, clwd = par()$lwd,
spch = NULL, scex = par()$cex, scol = par()$col,
slabels = rownames(x2mat), ...)
```

##### Arguments

- object
Object of class

`"rrvglm"`

.- A
Logical. Allow the plotting of

**A**?- C
Logical. Allow the plotting of

**C**? If`TRUE`

then**C**is represented by arrows emenating from the origin.- scores
Logical. Allow the plotting of the \(n\) scores? The scores are the values of the latent variables for each observation.

- show.plot
Logical. Plot it? If

`FALSE`

, no plot is produced and the matrix of scores (\(n\) latent variable values) is returned. If`TRUE`

, the rank of`object`

need not be 2.- groups
A vector whose distinct values indicate which group the observation belongs to. By default, all the observations belong to a single group. Useful for the multinomial logit model (see

`multinomial`

.- gapC
The gap between the end of the arrow and the text labelling of

**C**, in latent variable units.- scaleA
Numerical value that is multiplied by

**A**, so that**C**is divided by this value.- xlab
Caption for the x-axis. See

`par`

.- ylab
Caption for the y-axis. See

`par`

.- Alabels
Character vector to label

**A**. Must be of length \(M\).- Aadj
Justification of text strings for labelling

**A**. See the`adj`

argument of`par`

.- Acex
Numeric. Character expansion of the labelling of

**A**. See the`cex`

argument of`par`

.- Acol
Line color of the arrows representing

**C**. See the`col`

argument of`par`

.- Apch
Either an integer specifying a symbol or a single character to be used as the default in plotting points. See

`par`

. The`pch`

argument can be of length \(M\), the number of species.- Clabels
Character vector to label

**C**. Must be of length \(p2\).- Cadj
Justification of text strings for labelling

**C**. See the`adj`

argument of`par`

.- Ccex
Numeric. Character expansion of the labelling of

**C**. See the`cex`

argument of`par`

.- Ccol
Line color of the arrows representing

**C**. See the`col`

argument of`par`

.- Clty
Line type of the arrows representing

**C**. See the`lty`

argument of`par`

.- Clwd
Line width of the arrows representing

**C**. See the`lwd`

argument of`par`

.- chull.arg
Logical. Plot the convex hull of the scores? This is done for each group (see the

`group`

argument).- ccex
Numeric. Character expansion of the labelling of the convex hull. See the

`cex`

argument of`par`

.- ccol
Line color of the convex hull. See the

`col`

argument of`par`

.- clty
Line type of the convex hull. See the

`lty`

argument of`par`

.- clwd
Line width of the convex hull. See the

`lwd`

argument of`par`

.- spch
Either an integer specifying a symbol or a single character to be used as the default in plotting points. See

`par`

. The`spch`

argument can be of length \(M\), the number of species.- scex
Numeric. Character expansion of the labelling of the scores. See the

`cex`

argument of`par`

.- scol
Line color of the arrows representing

**C**. See the`col`

argument of`par`

.- slabels
Character vector to label the scores. Must be of length \(n\).

- …
Arguments passed into the

`plot`

function when setting up the entire plot. Useful arguments here include`xlim`

and`ylim`

.

##### Details

For RR-VGLMs, a *biplot* and a *latent variable* plot coincide.
In general, many of the arguments starting with
``A'' refer to **A** (of length \(M\)),
``C'' to **C** (of length \(p2\)),
``c'' to the convex hull (of length `length(unique(groups))`

),
and ``s'' to scores (of length \(n\)).

As the result is a biplot, its interpretation is based on the inner product.

##### Value

The matrix of scores (\(n\) latent variable values) is returned regardless of whether a plot was produced or not.

##### Note

The functions `lvplot.rrvglm`

and
`biplot.rrvglm`

are equivalent.

In the example below the predictor variables are centered, which is a good idea.

##### References

Yee, T. W. and Hastie, T. J. (2003)
Reduced-rank vector generalized linear models.
*Statistical Modelling*,
**3**, 15--41.

##### See Also

##### Examples

```
# NOT RUN {
nn <- nrow(pneumo) # x1, x2 and x3 are some unrelated covariates
pneumo <- transform(pneumo, slet = scale(log(exposure.time)),
x1 = rnorm(nn), x2 = rnorm(nn), x3 = rnorm(nn))
fit <- rrvglm(cbind(normal, mild, severe) ~ slet + x1 + x2 + x3,
multinomial, data = pneumo, Rank = 2,
Corner = FALSE, Uncorrel = TRUE)
# }
# NOT RUN {
lvplot(fit, chull = TRUE, scores = TRUE, clty = 2, ccol = "blue",
scol = "red", Ccol = "darkgreen", Clwd = 2, Ccex = 2,
main = "Biplot of some fictitional data")
# }
```

*Documentation reproduced from package VGAM, version 1.0-4, License: GPL-3*