specresponse {goeveg} | R Documentation |
Species response curves
Description
This function fits species response curves to visualize species responses to environmental gradients or ordination axes. It is based on Logistic Regression (binomial family) using Generalized Linear Models (GLMs) or Generalized Additive Models (GAMs) with integrated smoothness estimation. The function can draw response curves for single or multiple species.
Usage
specresponse(
species,
var,
main,
xlab,
model = "auto",
method = "env",
axis = 1,
points = FALSE,
bw = FALSE,
lwd = NULL,
na.action = na.omit
)
Arguments
species |
Species data (either a community matrix object with samples in rows and species in columns - response curves are drawn for all (selected) columns; or a single vector containing species abundances per plot). |
var |
Vector containing environmental variable (per plot) OR |
main |
Optional: Main title. |
xlab |
Optional: Label of x-axis. |
model |
Defining the assumed species response: Default |
method |
Method defining the type of variable. Default |
axis |
Ordination axis (only if |
points |
If set on |
bw |
If set on |
lwd |
Optional: Graphical parameter defining the line width. |
na.action |
Optional: a function which indicates what should happen when the data contain NAs. The default is 'na.omit' (removes incomplete cases). |
Value
Returns an (invisible) list with results for all calculated models. This list can be stored by assigning the result. For each model short information on type, parameters, explained deviance and corresponding p-value (based on chi-squared test) are printed.
Details
For response curves based on environmental gradients the argument var
takes a single vector containing the variable corresponding to the species abundances.
For a response to ordination axis (method = "ord"
) the argument var
requires a vegan
ordination result object (e.g. from decorana
, cca
or metaMDS
).
First axis is used as default.
By default the response curves are drawn with automatic GLM model selection based on AIC out of GLMs with 1 - 3 polynomial degrees (thus excluding bimodal responses which must be manually defined). The GAM model is more flexible and chooses automatically between an upper limit of 3 - 6 degrees of freedom for the regression smoother.
Available information about species is reduced to presence-absence as species abundances can contain much noise (being affected by complex factors) and the results of Logistic Regression are easier to interpret showing the "probabilities of occurrence". Be aware that response curves are only a simplification of reality (model) and their shape is strongly dependent on the available dataset.
Author(s)
Friedemann von Lampe (fvonlampe@uni-goettingen.de)
Examples
## Draw species response curve for one species on environmental variable
## with points of occurrences
specresponse(schedenveg$ArrElat, schedenenv$soil_depth, points = TRUE)
## Draw species response curve on environmental variable with custom labels
specresponse(schedenveg$ArrElat, schedenenv$soil_depth, points = TRUE,
main = "Arrhenatherum elatius", xlab = "Soil depth")
## Draw species response curve on ordination axes
## First calculate DCA
library(vegan)
scheden.dca <- decorana(schedenveg)
# Using a linear model on first axis
specresponse(schedenveg$ArrElat, scheden.dca, method = "ord", model = "linear")
# Using an unimodal model on second axis
specresponse(schedenveg$ArrElat, scheden.dca, method = "ord", axis = 2, model = "unimodal")
## Community data: species (columns) need to be selected; call names() to get column numbers
names(schedenveg)
## Draw multiple species response curves on variable in black/white and store the results
res <- specresponse(schedenveg[ ,c(9,18,14,19)], schedenenv$height_herb, bw = TRUE)
# Call the results for Anthoxanthum odoratum
summary(res$AntOdor)
## Draw the same curves based on GAM
specresponse(schedenveg[ ,c(9,18,14,19)], schedenenv$height_herb, bw = TRUE, model = "gam")
## Draw multiple species response curves on variable with
## custom x-axis label and points of occurrences
specresponse(schedenveg[ ,c(9,18,14,19)], schedenenv$height_herb,
xlab = "Height of herb layer (cm)", points = TRUE)
## Draw multiple species response curves on ordination axes
specresponse(schedenveg[ ,c(9,18,14,19)], scheden.dca, method = "ord")
specresponse(schedenveg[ ,c(9,18,14,19)], scheden.dca, method = "ord", axis = 2)