diversi.gof {ape}R Documentation

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)



a numeric vector with the branching times.


a character string specifying the null distribution for the branching times. Only two choices are possible: either "exponential", or "user".


used if null = "user"; gives the expected distribution under the model.


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.

See Also

branching.times, diversi.time ltt.plot, birthdeath, yule, yule.cov


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)

[Package ape version 5.5 Index]