Tests of Constant Diversification Rates
This function computes two tests of the distribution of branching
times using the Cramér–von Mises and Anderson–Darling
goodness-of-fit tests. By default, it is assumed that the
diversification rate is constant, and an exponential distribution is
assumed for the branching times. In this case, the expected
distribution under this model is computed with a rate estimated from
the data. Alternatively, the user may specify an expected cumulative
density function (z
): in this case, x
and z
must
be of the same length. See the examples for how to compute the latter
from a sample of expected branching times.
diversi.gof(x, null = "exponential", z = NULL)
x |
a numeric vector with the branching times. |
null |
a character string specifying the null distribution for
the branching times. Only two choices are possible: either
|
z |
used if |
The Cramér–von Mises and Anderson–Darling tests compare the empirical density function (EDF) of the observations to an expected cumulative density function. By contrast to the Kolmogorov–Smirnov test where the greatest difference between these two functions is used, in both tests all differences are taken into account.
The distributions of both test statistics depend on the null hypothesis, and on whether or not some parameters were estimated from the data. However, these distributions are not known precisely and critical values were determined by Stephens (1974) using simulations. These critical values were used for the present function.
A NULL value is returned, the results are simply printed.
Emmanuel Paradis
Paradis, E. (1998) Testing for constant diversification rates using molecular phylogenies: a general approach based on statistical tests for goodness of fit. Molecular Biology and Evolution, 15, 476–479.
Stephens, M. A. (1974) EDF statistics for goodness of fit and some comparisons. Journal of the American Statistical Association, 69, 730–737.
data(bird.families) x <- branching.times(bird.families) ### suppose we have a sample of expected branching times `y'; ### for simplicity, take them from a uniform distribution: y <- runif(500, 0, max(x) + 1) # + 1 to avoid A2 = Inf ### now compute the expected cumulative distribution: x <- sort(x) N <- length(x) ecdf <- numeric(N) for (i in 1:N) ecdf[i] <- sum(y <= x[i])/500 ### finally do the test: diversi.gof(x, "user", z = ecdf)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.