## S3 method for class 'default':
radfit(x, ...)
rad.null(x, family=poisson, ...)
rad.preempt(x, family = poisson, ...)
rad.lognormal(x, family = poisson, ...)
rad.zipf(x, family = poisson, ...)
rad.zipfbrot(x, family = poisson, ...)
## S3 method for class 'radline':
predict(object, newdata, total, ...)
## S3 method for class 'radfit':
plot(x, BIC = FALSE, legend = TRUE, ...)  
## S3 method for class 'radfit.frame':
plot(x, order.by, BIC = FALSE, model, legend = TRUE,
     as.table = TRUE, ...)
## S3 method for class 'radline':
plot(x, xlab = "Rank", ylab = "Abundance", type = "b", ...)
radlattice(x, BIC = FALSE, ...)
## S3 method for class 'radfit':
lines(x, ...)
## S3 method for class 'radfit':
points(x, ...)
as.rad(x)
## S3 method for class 'rad':
plot(x, xlab = "Rank", ylab = "Abundance", log = "y", ...)Null, Preemption, Lognormal, Zipf,
    Mandelbrot.xyplot).x and y axes."b" for plotting both observed points
    and fitted lines, "p" for only points, "l" for only
    fitted lines, and "n" for only setting the frame.log = "y" gives the traditional plot of community ecology
    where the pre-emption model is a straight line, and with
    log = "xy" Zipf model is a straight line. With
    <rad.null, rad.preempt, rad.lognormal,
  zipf and zipfbrot fit each a single RAD model to a
  single site. The result object has class "radline" and
  inherits from glm, and can be handled by some (but not
  all) glm methods.  Function radfit fits all models either to a single site or to
  all rows of a data frame or a matrix. When fitted to a single site,
  the function returns an object of class "radfit" with items
  y (observed values), family, and models
  which is a list of fitted "radline" models.  When applied for a
  data frame or matrix, radfit function returns an object of
  class "radfit.frame" which is a list of "radfit"
  objects, each item names by the corresponding row name.
  All result objects ("radline", "radfit",
  "radfit.frame") can be accessed with same method functions.
  The following methods are available: AIC,
  coef, deviance, logLik. In
  addition the fit results can be accessed with fitted,
  predict and residuals (inheriting from
  residuals.glm). The graphical functions were discussed
  above in Details.
  Functions rad.null, rad.preempt, rad.lognormal,
  rad.zipf and zipfbrot fit the individual models
  (described below) for a single vector (row of data frame), and
  function radfit fits all models. The argument of the function
  radfit can be either a vector for a single community or a data
  frame where each row represents a distinct community.
  
  Function rad.null fits a brokenstick model where the expected
  abundance of species at rank $r$ is $a_r = (J/S)
  \sum_{x=r}^S (1/x)$ (Pielou
  1975), where $J$ is the total number of individuals (site total)
  and $S$ is the total number of species in the community.  This
  gives a Null model where the individuals are randomly distributed
  among observed species, and there are no fitted parameters.
  Function rad.preempt fits the niche preemption model,
  a.k.a. geometric series or Motomura model, where the expected
  abundance $a$ of species at rank $r$ is $a_r = J \alpha
  (1 - \alpha)^{r-1}$. The only
  estimated parameter is the preemption coefficient $\alpha$ which
  gives the decay rate of abundance per rank.  The niche preemption
  model is a straight line in a RAD plot.  Function
  rad.lognormal fits a log-Normal model which assumes that the
  logarithmic abundances are distributed Normally, or $a_r = \exp(
  \log \mu + \log \sigma N)$,
  where $N$ is a Normal deviate.  Function rad.zipf fits
  the Zipf model $a_r = J p_1 r^\gamma$ where
  $p_1$ is the fitted proportion of the most abundant species,
  and $\gamma$ is a decay coefficient. The Zipf--Mandelbrot model
  (rad.zipfbrot) adds one parameter: $a_r = J c (r +
  \beta)^\gamma$ after which $p_1$
  of the Zipf model changes into a meaningless scaling constant
  $c$. 
  Log-Normal and Zipf models are generalized linear models
  (glm) with logarithmic link function.  Zipf--Mandelbrot
  adds one nonlinear parameter to the Zipf model, and is fitted using
  nlm for the nonlinear parameter and estimating other
  parameters and log-Likelihood with glm. Preemption
  model is fitted as a purely nonlinear model. There are no estimated
  parameters in the Null model.  
  The default family is poisson which is
  appropriate only for genuine counts (integers), but other families
  that accept link = "log" can be used. Families
  Gamma or gaussian may be appropriate for
  abundance data, such as cover. The ``best'' model is selected by
  AIC. Therefore ``quasi'' families such as
  quasipoisson cannot be used: they do not have
  AIC nor log-Likelihood needed in non-linear models.
  
  All these functions have their own plot functions. When
  radfit was applied for a data frame, plot uses
  Lattice graphics, and other plot
  functions use ordinary graphics. The ordinary graphics functions
  return invisibly an ordiplot object for observed points,
  and function identify.ordiplot can be used to label
  selected species.  Alternatively, radlattice uses
  Lattice graphics to display each radfit
  model of a single site in a separate panel together with their AIC or
  BIC values.
  Function as.rad is a base function to construct ordered RAD
  data. Its plot is used by other RAD plot functions
  which pass extra arguments (such as xlab and log) to
  this function.
Wilson, J. B. (1991) Methods for fitting dominance/diversity curves. Journal of Vegetation Science 2, 35--46.
fisherfit and prestonfit.
  An alternative approach is to use
  qqnorm or  qqplot with any distribution.
  For controlling graphics: Lattice,
  xyplot, lset.data(BCI)
mod <- rad.lognormal(BCI[5,])
mod
plot(mod)
mod <- radfit(BCI[1,])
## Standard plot overlaid for all models
## Pre-emption model is a line
plot(mod)
## log for both axes: Zipf model is a line
plot(mod, log = "xy")
## Lattice graphics separately for each model
radlattice(mod)
# Take a subset of BCI to save time and nerves
mod <- radfit(BCI[3:5,])
mod
plot(mod, pch=".")Run the code above in your browser using DataLab