Learn R Programming

vegan (version 2.6-6.1)

screeplot.cca: Screeplots for Ordination Results and Broken Stick Distributions

Description

Screeplot methods for plotting variances of ordination axes/components and overlaying broken stick distributions. Also, provides alternative screeplot methods for princomp and prcomp.

Usage

# S3 method for cca
screeplot(x, bstick = FALSE, type = c("barplot", "lines"),
         npcs = min(10, if (is.null(x$CCA) || x$CCA$rank == 0) x$CA$rank else x$CCA$rank),
         ptype = "o", bst.col = "red", bst.lty = "solid",
         xlab = "Component", ylab = "Inertia",
         main = deparse(substitute(x)), legend = bstick,
         ...)

# S3 method for decorana screeplot(x, bstick = FALSE, type = c("barplot", "lines"), npcs = 4, ptype = "o", bst.col = "red", bst.lty = "solid", xlab = "Component", ylab = "Inertia", main = deparse(substitute(x)), legend = bstick, ...)

# S3 method for prcomp screeplot(x, bstick = FALSE, type = c("barplot", "lines"), npcs = min(10, length(x$sdev)), ptype = "o", bst.col = "red", bst.lty = "solid", xlab = "Component", ylab = "Inertia", main = deparse(substitute(x)), legend = bstick, ...)

# S3 method for princomp screeplot(x, bstick = FALSE, type = c("barplot", "lines"), npcs = min(10, length(x$sdev)), ptype = "o", bst.col = "red", bst.lty = "solid", xlab = "Component", ylab = "Inertia", main = deparse(substitute(x)), legend = bstick, ...)

bstick(n, ...)

# S3 method for default bstick(n, tot.var = 1, ...)

# S3 method for cca bstick(n, ...)

# S3 method for prcomp bstick(n, ...)

# S3 method for princomp bstick(n, ...)

# S3 method for decorana bstick(n, ...)

Value

Function screeplot draws a plot on the currently active device, and returns invisibly the xy.coords of the points or bars for the eigenvalues.

Function bstick returns a numeric vector of broken stick components.

Arguments

x

an object from which the component variances can be determined.

bstick

logical; should the broken stick distribution be drawn?

npcs

the number of components to be plotted.

type

the type of plot.

ptype

if type == "lines" or bstick = TRUE, a character indicating the type of plotting used for the lines; actually any of the types as in plot.default.

bst.col, bst.lty

the colour and line type used to draw the broken stick distribution.

xlab, ylab, main

graphics parameters.

legend

logical; draw a legend?

n

an object from which the variances can be extracted or the number of variances (components) in the case of bstick.default.

tot.var

the total variance to be split.

...

arguments passed to other methods.

Author

Gavin L. Simpson

Details

The functions provide screeplots for most ordination methods in vegan and enhanced versions with broken stick for prcomp and princomp.

Function bstick gives the brokenstick values which are ordered random proportions, defined as \(p_i = (tot/n) \sum_{x=i}^n (1/x)\) (Legendre & Legendre 2012), where \(tot\) is the total and \(n\) is the number of brokenstick components (cf. radfit). Broken stick has been recommended as a stopping rule in principal component analysis (Jackson 1993): principal components should be retained as long as observed eigenvalues are higher than corresponding random broken stick components.

The bstick function is generic. The default needs the number of components and the total, and specific methods extract this information from ordination results. There also is a bstick method for cca. However, the broken stick model is not strictly valid for correspondence analysis (CA), because eigenvalues of CA are defined to be \(\leq 1\), whereas brokenstick components have no such restrictions. The brokenstick components in detrended correspondence analysis (DCA) assume that input data are of full rank, and additive eigenvalues are used in screeplot (see decorana).

References

Jackson, D. A. (1993). Stopping rules in principal components analysis: a comparison of heuristical and statistical approaches. Ecology 74, 2204--2214.

Legendre, P. and Legendre, L. (2012) Numerical Ecology. 3rd English ed. Elsevier.

See Also

cca, decorana, princomp and prcomp for the ordination functions, and screeplot for the stock version.

Examples

Run this code
data(varespec)
vare.pca <- rda(varespec, scale = TRUE)
bstick(vare.pca)
screeplot(vare.pca, bstick = TRUE, type = "lines")

Run the code above in your browser using DataLab