Learn R Programming

vegan (version 2.4-2)

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

"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, ...)
"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)), ...)
"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, ...)
"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, ...)
"bstick"(n, tot.var = 1, ...)
"bstick"(n, ...)
"bstick"(n, ...)
"bstick"(n, ...)
"bstick"(n, ...)

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.

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.

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(from x=i to 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 $<=1$, whereas="" brokenstick="" components="" have="" no="" such="" restrictions.="" the="" are="" not="" available="" for="" decorana where the sum of eigenvalues (total inertia) is unknown, and the eigenvalues of single axes are not additive in detrended analysis.

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