## S3 method for class 'data.frame':
radfit(df, ...)
## S3 method for class 'radfit.frame':
plot(x, order.by, BIC = FALSE, model, legend = TRUE,
     as.table = TRUE, ...)
## S3 method for class 'default':
radfit(x, ...)
## S3 method for class 'radfit':
plot(x, BIC = FALSE, legend = TRUE, ...)  
rad.preempt(x, family = poisson, ...)
rad.lognormal(x, family = poisson, ...)
rad.veil(x, family = poisson, ...)
rad.zipf(x, family = poisson, ...)
rad.zipfbrot(x, family = poisson, ...)
## S3 method for class 'radline':
plot(x, xlab = "Rank", ylab = "Abundance", type = "b", ...)
## S3 method for class 'radline':
lines(x, ...)
## S3 method for class 'radline':
points(x, ...)
as.rad(x)
## S3 method for class 'rad':
plot(x, xlab = "Rank", ylab = "Abundance", ...)Preemption, Lognormal, Veiled.LN,
    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.rad.XXXX will return an object of class
  radline, which is constructed to resemble results of glm
  and has many (but not all) of its components, even when only
  nlm was used in fitting. At least the following
  glm methods can be applied to the result:
  fitted, residuals.glm  with alternatives
  "deviance" (default), "pearson", "response",
  function coef, AIC,
  extractAIC, and deviance.
  Function radfit applied to a vector will return
  an object of class radfit with item y for the
  constructed RAD, item family for the error distribution, and
  item models containing each radline object as an
  item. In addition, there are special AIC, coef and
  fitted implementations for radfit results. 
  When applied to a data frame
  radfit will return an object of class radfit.frame which
  is a list of radfit objects. The functions are still
  preliminary, and the items in the radline objects may change.as.rad constructs observed
  RAD data.
  Functions rad.XXXX (where XXXX is a name) fit
  the individual models, 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. All these functions have their own plot
  functions. When the argument is a data frame, plot uses
  Lattice graphics, and other 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. The most complete control of graphics can be achieved
  with rad.XXXX methods which have points and lines
  functions to add observed values and fitted models into existing
  graphs.    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. In addition there is a fixed scaling
  parameter $J$ which is the total abundance. 
  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.veil is similar, but it assumes
  that only a proportion veil of most common species were
  observed in the community, the rest being too rare or scanty to occur
  in a sample plot of this size (but would occur in a larger
  plot). 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$. There are great histories about ecological
  mechanisms behind each model (Wilson 1991), but
  several alternative and contrasting mechanisms can produce
  similar models and a good fit does not imply a specific mechanism.
  Log-Normal and Zipf models are generalized linear
  models (glm) with logarithmic link function.
  Veiled log-Normal and Zipf -- Mandelbrot add one
  nonlinear parameter, and these two models are fitted using
  nlm for the nonlinear parameter and estimating other
  parameters and log-Likelihood with glm. Pre-emption
  model is fitted as purely nonlinear model.  The default
  family is poisson which is appropriate only for
  genuine counts (integers), but other families that accept link =
    "log" can be used. Family Gamma 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.
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.veil(BCI[1,])
mod
plot(mod)
mod <- radfit(BCI[1,])
plot(mod)
# Take a subset of BCI to save time and nerves
mod <- radfit(BCI[2:5,])
mod
plot(mod, pch=".")Run the code above in your browser using DataLab