SSarrhenius: Self-Starting nls Species-Area Models

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

These functions provide self-starting species-area models for non-linear regression (nls). They can also be used for fitting species accumulation models in fitspecaccum. These models (and many more) are reviewed by Dengler (2009).

Usage

1
2
3
4
SSarrhenius(area, k, z)
SSgleason(area, k, slope)
SSgitay(area, k, slope)
SSlomolino(area, Asym, xmid, slope)

Arguments

area

Area or size of the sample: the independent variable.

k, z, slope, Asym, xmid

Estimated model parameters: see Details.

Details

All these functions are assumed to be used for species richness (number of species) as the independent variable, and area or sample size as the independent variable. Basically, these define least squares models of untransformed data, and will differ from models for transformed species richness or models with non-Gaussian error.

The Arrhenius model (SSarrhenius) is the expression k*area^z. This is the most classical model that can be found in any textbook of ecology (and also in Dengler 2009). Parameter z is the steepness of the species-area curve, and k is the expected number of species in a unit area.

The Gleason model (SSgleason) is a linear expression k + slope*log(area) (Dengler 200). This is a linear model, and starting values give the final estimates; it is provided to ease comparison with other models.

The Gitay model (SSgitay) is a quadratic logarithmic expression (k + slope*log(area))^2 (Gitay et al. 1991, Dengler 2009). Parameter slope is the steepness of the species-area curve, and k is the square root of expected richness in a unit area.

The Lomolino model (SSlomolino) is Asym/(1 + slope^log(xmid/area)) (Lomolino 2000, Dengler 2009). Parameter Asym is the asymptotic maximum number of species, slope is the maximum slope of increase of richness, and xmid is the area where half of the maximum richness is achieved.

In addition to these models, several other models studied by Dengler (2009) are available in standard R self-starting models: Michaelis-Menten (SSmicmen), Gompertz (SSgompertz), logistic (SSlogis), Weibull (SSweibull), and some others that may be useful.

Value

Numeric vector of the same length as area. It is the value of the expression of each model. If all arguments are names of objects the gradient matrix with respect to these names is attached as an attribute named gradient.

Author(s)

Jari Oksanen.

References

Dengler, J. (2009) Which function describes the species-area relationship best? A review and empirical evaluation. Journal of Biogeography 36, 728–744.

Gitay, H., Roxburgh, S.H. & Wilson, J.B. (1991) Species-area relationship in a New Zealand tussock grassland, with implications for nature reserve design and for community structure. Journal of Vegetation Science 2, 113–118.

Lomolino, M. V. (2000) Ecology's most general, yet protean pattern: the species-area relationship. Journal of Biogeography 27, 17–26.

See Also

nls, fitspecaccum.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
## Get species area data: sipoo.area gives the areas of islands
example(sipoo)
S <- specnumber(sipoo)
plot(S ~ sipoo.area, xlab = "Island Area (ha)", ylab = "Number of Species",
    ylim = c(1, max(S)))
## The Arrhenius model
marr <- nls(S ~ SSarrhenius(sipoo.area, k, z))
marr
## confidence limits from profile likelihood
confint(marr)
## draw a line
xtmp <- seq(min(sipoo.area), max(sipoo.area), len=51)
lines(xtmp, predict(marr, newdata=data.frame(sipoo.area = xtmp)), lwd=2)
## The normal way is to use linear regression on log-log data,
## but this will be different from the previous:
mloglog <- lm(log(S) ~ log(sipoo.area))
mloglog
lines(xtmp, exp(predict(mloglog, newdata=data.frame(sipoo.area=xtmp))),
   lty=2)
## Gleason: log-linear
mgle <- nls(S ~ SSgleason(sipoo.area, k, slope))
lines(xtmp, predict(mgle, newdata=data.frame(sipoo.area=xtmp)),
  lwd=2, col=2)
## Gitay: quadratic of log-linear
mgit <- nls(S ~ SSgitay(sipoo.area, k, slope))
lines(xtmp, predict(mgit, newdata=data.frame(sipoo.area=xtmp)), 
  lwd=2, col = 3)
## Lomolino: using original names of the parameters (Lomolino 2000):
mlom <- nls(S ~ SSlomolino(sipoo.area, Smax, A50, Hill))
mlom
lines(xtmp, predict(mlom, newdata=data.frame(sipoo.area=xtmp)), 
  lwd=2, col = 4)
## One canned model of standard R:
mmic <- nls(S ~ SSmicmen(sipoo.area, slope, Asym))
lines(xtmp, predict(mmic, newdata = data.frame(sipoo.area=xtmp)),
  lwd =2, col = 5)
legend("bottomright", c("Arrhenius", "log-log linear", "Gleason", "Gitay", 
  "Lomolino", "Michaelis-Menten"), col=c(1,1,2,3,4,5), lwd=c(2,1,2,2,2,2), 
   lty=c(1,2,1,1,1,1))
## compare models (AIC)
allmods <- list(Arrhenius = marr, Gleason = mgle, Gitay = mgit, 
   Lomolino = mlom, MicMen= mmic)
sapply(allmods, AIC)

Example output

Loading required package: permute
Loading required package: lattice
This is vegan 2.4-4

sipoo> data(sipoo)

sipoo> ## Areas of the islands in hectares
sipoo> sipoo.area <-  c(1.1, 2.1, 2.2, 3.1, 3.5, 5.8, 6, 6.1, 6.5, 11.4, 13,
sipoo+ 14.5, 16.1 ,17.5, 28.7, 40.5, 104.5, 233) 
Nonlinear regression model
  model: S ~ SSarrhenius(sipoo.area, k, z)
   data: parent.frame()
     k      z 
3.4062 0.4364 
 residual sum-of-squares: 78.1

Number of iterations to convergence: 5 
Achieved convergence tolerance: 1.056e-06
Waiting for profiling to be done...
       2.5%     97.5%
k 2.6220312 4.3033906
z 0.3813576 0.4944693

Call:
lm(formula = log(S) ~ log(sipoo.area))

Coefficients:
    (Intercept)  log(sipoo.area)  
         1.0111           0.4925  

Nonlinear regression model
  model: S ~ SSlomolino(sipoo.area, Smax, A50, Hill)
   data: parent.frame()
  Smax    A50   Hill 
53.493 94.697  2.018 
 residual sum-of-squares: 55.37

Number of iterations to convergence: 6 
Achieved convergence tolerance: 9.715e-07
Arrhenius   Gleason     Gitay  Lomolino    MicMen 
 83.49847  96.94018  80.54984  79.30718  83.02003 

vegan documentation built on May 2, 2019, 5:51 p.m.