MitchellOlds & Shaw test concerns the location of the highest (hump)
or lowest (pit) value of a quadratic curve at given points. Typically,
it is used to study whether the quadratic hump or pit is located
within a studied interval. The current test is generalized so that it
applies generalized linear models (glm
) with link
function instead of simple quadratic curve. The test was popularized
in ecology for the analysis of humped species richness patterns
(Mittelbach et al. 2001), but it is more general. With logarithmic
link function, the quadratic response defines the Gaussian response
model of ecological gradients (ter Braak & Looman 1986), and the test
can be used for inspecting the location of Gaussian optimum within a
given range of the gradient. It can also be used to replace Tokeshi's
test of “bimodal” species frequency distribution.
1 2 3 4 5 6 7 8  MOStest(x, y, interval, ...)
## S3 method for class 'MOStest'
plot(x, which = c(1,2,3,6), ...)
fieller.MOStest(object, level = 0.95)
## S3 method for class 'MOStest'
profile(fitted, alpha = 0.01, maxsteps = 10, del = zmax/5, ...)
## S3 method for class 'MOStest'
confint(object, parm = 1, level = 0.95, ...)

x 
The independent variable or plotting object in 
y 
The dependent variable. 
interval 
The two points at which the test statistic is
evaluated. If missing, the extremes of 
which 
Subset of plots produced. Values 
object, fitted 
A result object from 
level 
The confidence level required. 
alpha 
Maximum significance level allowed. 
maxsteps 
Maximum number of steps in the profile. 
del 
A step length parameter for the profile (see code). 
parm 
Ignored. 
... 
Other variables passed to functions. Function

The function fits a quadratic curve μ = b_0 + b_1 x + b_2
x^2 with given family
and link function. If b_2
< 0, this defines a unimodal curve with highest point at u =
b_1/(2 b_2) (ter Braak & Looman 1986). If b_2 > 0, the
parabola has a minimum at u and the response is sometimes
called “bimodal”. The null hypothesis is that the extreme
point u is located within the interval given by points
p_1 and p_2. If the extreme point u is exactly at
p_1, then b_1 = 0 on shifted axis x  p_1. In the
test, origin of x
is shifted to the values p_1 and
p_2, and the test statistic is based on the differences of
deviances between the original model and model where the origin is
forced to the given location using the standard
anova.glm
function (Oksanen et al. 2001).
MitchellOlds & Shaw (1987) used the first degree coefficient with
its significance as estimated by the summary.glm
function. This give identical results with Normal error, but for
other error distributions it is preferable to use the test based on
differences in deviances in fitted models.
The test is often presented as a general test for the location of the hump, but it really is dependent on the quadratic fitted curve. If the hump is of different form than quadratic, the test may be insignificant.
Because of strong assumptions in the test, you should use the support
functions to inspect the fit. Function plot(..., which=1)
displays the data points, fitted quadratic model, and its approximate
95% confidence intervals (2 times SE). Function plot
with
which = 2
displays the approximate confidence interval of
the polynomial coefficients, together with two lines indicating the
combinations of the coefficients that produce the evaluated points of
x
. Moreover, the crosshair shows the approximate confidence
intervals for the polynomial coefficients ignoring their
correlations. Higher values of which
produce corresponding
graphs from plot.lm
. That is, you must add 2 to the
value of which
in plot.lm
.
Function fieller.MOStest
approximates the confidence limits
of the location of the extreme point (hump or pit) using Fieller's
theorem following ter Braak & Looman (1986). The test is based on
quasideviance except if the family
is poisson
or binomial
. Function profile
evaluates the profile
deviance of the fitted model, and confint
finds the profile
based confidence limits following Oksanen et al. (2001).
The test is typically used in assessing the significance of diversity hump against productivity gradient (Mittelbach et al. 2001). It also can be used for the location of the pit (deepest points) instead of the Tokeshi test. Further, it can be used to test the location of the the Gaussian optimum in ecological gradient analysis (ter Braak & Looman 1986, Oksanen et al. 2001).
The function is based on glm
, and it returns the result
of object of glm
amended with the result of the test. The new
items in the MOStest
are:
isHump 

isBracketed 

hump 
Sorted vector of location of the hump or the pit and the points where the test was evaluated. 
coefficients 
Table of test statistics and their significances. 
Function fieller.MOStest
is based on package optgrad in
the Ecological Archives
(http://www.esapubs.org/archive/ecol/E082/015/default.htm)
accompanying Oksanen et al. (2001). The Ecological Archive package
optgrad also contains profile deviance method for the location
of the hump or pit, but the current implementation of profile
and confint
rather follow the example of
profile.glm
and confint.glm
in
the MASS package.
Jari Oksanen
MitchellOlds, T. & Shaw, R.G. 1987. Regression analysis of natural selection: statistical inference and biological interpretation. Evolution 41, 1149–1161.
Mittelbach, G.C. Steiner, C.F., Scheiner, S.M., Gross, K.L., Reynolds, H.L., Waide, R.B., Willig, R.M., Dodson, S.I. & Gough, L. 2001. What is the observed relationship between species richness and productivity? Ecology 82, 2381–2396.
Oksanen, J., Läärä, E., Tolonen, K. & Warner, B.G. 2001. Confidence intervals for the optimum in the Gaussian response function. Ecology 82, 1191–1197.
ter Braak, C.J.F & Looman, C.W.N 1986. Weighted averaging, logistic regression and the Gaussian response model. Vegetatio 65, 3–11.
The nointeraction model can be fitted with humpfit
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  ## The AlMufti data analysed in humpfit():
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)
mod < MOStest(mass, spno)
## Insignificant
mod
## ... but inadequate shape of the curve
op < par(mfrow=c(2,2), mar=c(4,4,1,1)+.1)
plot(mod)
## Looks rather like loglink with Poisson error and logarithmic biomass
mod < MOStest(log(mass), spno, family=quasipoisson)
mod
plot(mod)
par(op)
## Confidence Limits
fieller.MOStest(mod)
confint(mod)
plot(profile(mod))

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.