Function humpfit
fits a nointeraction model for species
richness vs. biomass data (Oksanen 1996). This is a null model that
produces a humpbacked response as an artifact of plant size and
density.
1 2 3 4 5 6 7 8 9 10 11 12 13 14  humpfit(mass, spno, family = poisson, start)
## S3 method for class 'humpfit'
summary(object, ...)
## S3 method for class 'humpfit'
predict(object, newdata = NULL, ...)
## S3 method for class 'humpfit'
plot(x, xlab = "Biomass", ylab = "Species Richness", lwd = 2,
l.col = "blue", p.col = 1, type = "b", ...)
## S3 method for class 'humpfit'
points(x, ...)
## S3 method for class 'humpfit'
lines(x, segments=101, ...)
## S3 method for class 'humpfit'
profile(fitted, parm = 1:3, alpha = 0.01, maxsteps = 20, del = zmax/5, ...)

mass 
Biomass. 
spno 
Species richness. 
start 
Vector of starting values for all three parameters. 
family 
Family of error distribution. Any 
x, object, fitted 
Result object of 
newdata 
Values of 
xlab,ylab 
Axis labels in 
lwd 
Line width 
l.col, p.col 
Line and point colour in 
type 
Type of 
segments 
Number of segments used for fitted lines. 
parm 
Profiled parameters. 
alpha, maxsteps, del 
Parameters for profiling range and density. 
... 
Other parameters to functions. 
The nointeraction model assumes that the humped species richness
pattern along biomass gradient is an artifact of plant size and
density (Oksanen 1996). For lowbiomass sites, it assumes that plants
have a fixed size, and biomass increases with increasing number of
plants. When the sites becomes crowded, the number of plants and
species richness reaches the maximum. Higher biomass is reached by
increasing the plant size, and then the number of plants and species
richness will decrease. At biomasses below the hump, plant number and
biomass are linearly related, and above the hump, plant number is
proportional to inverse squared biomass. The number of plants is
related to the number of species by the relationship (link
function) from Fisher's logseries (Fisher et al. 1943).
The parameters of the model are:
hump
: the location of the hump on the biomass gradient.
scale
: an arbitrary multiplier to translate the biomass
into virtual number of plants.
alpha
: Fisher's alpha to translate the
virtual number of plants into number of species.
The parameters scale
and alpha
are intermingled and this
function should not be used for estimating Fisher's
alpha. Probably the only meaningful and interesting
parameter is the location of the hump
.
Function may be very
difficult to fit and easily gets trapped into local solutions, or
fails with nonPoisson families, and function profile
should be
used to inspect the fitted models. If you have loaded package
MASS, you can use functions
plot.profile
,
pairs.profile
for graphical inspection of the
profiles, and confint.profile.glm
for the profile
based confidence intervals.
The original model intended to show that there is no need to speculate about ‘competition’ and ‘stress’ (AlMufti et al. 1977), but humped response can be produced as an artifact of using fixed plot size for varying plant sizes and densities.
The
function returns an object of class "humpfit"
inheriting from
class "glm"
. The result object has specific summary
,
predict
, plot
, points
and lines
methods. In addition, it can be accessed by the following methods
for glm
objects: AIC
,
extractAIC
, deviance
,
coef
, residuals.glm
(except
type = "partial"
), fitted
, and perhaps some others.
In addition, function ellipse.glm
(package
ellipse) can be used to draw approximate confidence ellipses
for pairs of parameters, if the normal assumptions look appropriate.
The function is a replacement for the original GLIM4
function
at the archive of Journal of Ecology. There the function was
represented as a mixed glm
with one nonlinear
parameter (hump
) and a special oneparameter link function from
Fisher's logseries. The current function directly applies nonlinear
maximum likelihood fitting using function nlm
. Some
expected problems with the current approach are:
The function is discontinuous at hump
and may be
difficult to optimize in some cases (the lines will always join, but
the derivative jumps).
The function does not try very hard to find sensible starting
values and can fail. The user may supply starting values in
argument start
if fitting fails.
The estimation is unconstrained, but both scale
and
alpha
should always be positive. Perhaps they should be
fitted as logarithmic. Fitting Gamma
family
models might become easier, too.
Jari Oksanen
AlMufti, M.M., Sykes, C.L, Furness, S.B., Grime, J.P & Band, S.R. (1977) A quantitative analysis of shoot phenology and dominance in herbaceous vegetation. Journal of Ecology 65,759–791.
Fisher, R.A., Corbet, A.S. & Williams, C.B. (1943) The relation between the number of species and the number of individuals in a random sample of of an animal population. Journal of Animal Ecology 12, 42–58.
Oksanen, J. (1996) Is the humped relationship between species richness and biomass an artefact due to plot size? Journal of Ecology 84, 293–295.
fisherfit
, profile.glm
,
confint.glm
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  ##
## Data approximated from AlMufti et al. (1977)
##
mass < c(140,230,310,310,400,510,610,670,860,900,1050,1160,1900,2480)
spno < c(1, 4, 3, 9, 18, 30, 20, 14, 3, 2, 3, 2, 5, 2)
sol < humpfit(mass, spno)
summary(sol) # Almost infinite alpha...
plot(sol)
# confint is in MASS, and impicitly calls profile.humpfit.
# Parameter 3 (alpha) is too extreme for profile and confint, and we
# must use only "hump" and "scale".
library(MASS)
plot(profile(sol, parm=1:2))
confint(sol, parm=c(1,2))

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.