fisherfit fits Fisher's logseries to abundance
  data. Function prestonfit groups species frequencies into
  doubling octave classes and fits Preston's lognormal model, and
  function prestondistr fits the truncated lognormal model
  without pooling the data into octaves.fisherfit(x, ...)
## S3 method for class 'fisherfit':
confint(object, parm, level = 0.95, ...)
## S3 method for class 'fisherfit':
profile(fitted, alpha = 0.01, maxsteps = 20, del = zmax/5, 
    ...)
prestonfit(x, tiesplit = TRUE, ...)
prestondistr(x, truncate = -1, ...)
## S3 method for class 'prestonfit':
plot(x, xlab = "Frequency", ylab = "Species", bar.col = "skyblue", 
    line.col = "red", lwd = 2, ...)
## S3 method for class 'prestonfit':
lines(x, line.col = "red", lwd = 2, ...)
veiledspec(x, ...)
as.fisher(x, ...)
## S3 method for class 'fisher':
plot(x, xlab = "Frequency", ylab = "Species", bar.col = "skyblue",
             kind = c("bar", "hiplot", "points", "lines"), add = FALSE, ...)
as.preston(x, tiesplit = TRUE, ...)
## S3 method for class 'preston':
plot(x, xlab = "Frequency", ylab = "Species", bar.col = "skyblue", ...)
## S3 method for class 'preston':
lines(x, xadjust = 0.5, ...)plot functions.x and y axes."bar" is similar bar plot
    as in plot.fisherfit, "hiplot" draws vertical lines
    as with "points" and
    "lines" are prestonfit and tiesplit passed to as.preston in
    prestondistr.prestonfit returns an object with fitted
  coefficients, and with observed (freq) and fitted
  (fitted) frequencies, and a string describing the fitting
  method. Function prestondistr omits the entry
  fitted.  The function fisherfit returns the result of
  nlm, where item estimate is $\alpha$. The
  result object is amended with the following items:as.fisher.nlm. The estimation is possible only for genuine
  counts of individuals. The parameter $\alpha$ is used as a
  diversity index, and $\alpha$ and its standard error can be
  estimated with a separate function fisher.alpha. The
  parameter $x$ is taken as a nuisance parameter which is not
  estimated separately but taken to be $n/(n+\alpha)$. Helper
  function as.fisher transforms abundance data into Fisher
  frequency table.  Function  fisherfit estimates the standard error of
  $\alpha$. However, the confidence limits cannot be directly
  estimated from the standard errors, but you should use function
  confint based on profile likelihood. Function confint
  uses function confint.glm of the profile.fisherfit for the profile
  likelihood. Function profile.fisherfit follows
  profile.glm and finds the $\tau$ parameter or
  signed square root of two times log-Likelihood profile. The profile can
  be inspected with a plot function which shows the $\tau$
  and a dotted line corresponding to the Normal assumption: if standard
  errors can be directly used in Normal inference these two lines
  are similar.
  Preston (1948) was not satisfied with Fisher's model which seemed to
  imply infinite species richness, and postulated that rare species is
  a diminishing class and most species are in the middle of frequency
  scale. This was achieved by collapsing higher frequency classes into
  wider and wider ``octaves'' of doubling class limits: 1, 2, 3--4,
  5--8, 9--16 etc. occurrences. It seems that Preston regarded
  frequencies 1, 2, 4, etc.. as tiesplit =
  TRUE. With tiesplit = FALSE the frequencies are not split,
  but all ones are in the lowest octave, all twos in the second, etc.
  Williamson & Gaston (2005) discuss alternative definitions in
  detail, and they should be consulted for a critical review of
  log-Normal model.
  Any logseries data will look like lognormal when plotted in
  Preston's way. The expected frequency $f$ at abundance octave
  $o$ is defined by $f_o = S_0 \exp(-(\log_2(o) -
  \mu)^2/2/\sigma^2)$, where
  $\mu$ is the location of the mode and $\sigma$ the width,
  both in $\log_2$ scale, and $S_0$ is the expected
  number of species at mode. The lognormal model is usually truncated
  on the left so that some rare species are not observed. Function
  prestonfit fits the truncated lognormal model as a second
  degree log-polynomial to the octave pooled data using Poisson (when
  $tiesplit = FALSE$) or quasi-Poisson (when $tiesplit =
  TRUE$).  error. Function prestondistr fits left-truncated
  Normal distribution to $\log_2$ transformed non-pooled
  observations with direct maximization of log-likelihood. Function
  prestondistr is modelled after function
  fitdistr which can be used for alternative
  distribution models. 
  The functions have common print, plot and lines
  methods. The lines function adds the fitted curve to the
  octave range with line segments showing the location of the mode and
  the width (sd) of the response. Function as.preston
  transforms abundance data to octaves.  Argument tiesplit will
  not influence the fit in prestondistr, but it will influence
  the barplot of the octaves. 
  The total extrapolated richness from a fitted Preston model can be
  found with function veiledspec. The function accepts results
  both from prestonfit and from prestondistr. If
  veiledspec is called with a species count vector, it will
  internally use prestonfit. Function specpool
  provides alternative ways of estimating the number of unseen
  species. In fact, Preston's lognormal model seems to be truncated at
  both ends, and this may be the main reason why its result differ
  from lognormal models fitted in Rank--Abundance diagrams with
  functions rad.lognormal.
Kempton, R.A. & Taylor, L.R. (1974). Log-series and log-normal parameters as diversity discriminators for Lepidoptera. Journal of Animal Ecology 43: 381--399.
Preston, F.W. (1948) The commonness and rarity of species. Ecology 29, 254--283.
Williamson, M. & Gaston, K.J. (2005). The lognormal distribution is not an appropriate null hypothesis for the species--abundance distribution. Journal of Animal Ecology 74, 409--422.
diversity, fisher.alpha,
  radfit, specpool. Function
  fitdistr of prestondistr. Function density can be used for
  smoothed ``non-parametric'' estimation of responses, and
  qqplot is an alternative, traditional and more effective
  way of studying concordance of observed abundances to any distribution model.data(BCI)
mod <- fisherfit(BCI[5,])
mod
plot(profile(mod))
confint(mod)
# prestonfit seems to need large samples
mod.oct <- prestonfit(colSums(BCI))
mod.ll <- prestondistr(colSums(BCI))
mod.oct
mod.ll
plot(mod.oct)  
lines(mod.ll, line.col="blue3") # Different
## Smoothed density
den <- density(log2(colSums(BCI)))
lines(den$x, ncol(BCI)*den$y, lwd=2) # Fairly similar to mod.oct
## Extrapolated richness
veiledspec(mod.oct)
veiledspec(mod.ll)Run the code above in your browser using DataLab