Time-Dependent Birth-Death Models
This function fits a used-defined time-dependent birth-death model.
bd.time(phy, birth, death, BIRTH = NULL, DEATH = NULL, ip, lower, upper, fast = FALSE, boot = 0, trace = 0)
phy |
an object of class |
birth |
either a numeric (if speciation rate is assumed constant), or a (vectorized) function specifying how the birth (speciation) probability changes through time (see details). |
death |
id. for extinction probability. |
BIRTH |
(optional) a vectorized function giving the primitive
of |
DEATH |
id. for |
ip |
a numeric vector used as initial values for the estimation procedure. If missing, these values are guessed. |
lower, upper |
the lower and upper bounds of the parameters. If missing, these values are guessed too. |
fast |
a logical value specifying whether to use faster integration (see details). |
boot |
the number of bootstrap replicates to assess the confidence intervals of the parameters. Not run by default. |
trace |
an integer value. If non-zero, the fitting procedure is
printed every |
Details on how to specify the birth and death functions and their
primitives can be found in the help page of yule.time
.
The model is fitted by minimizing the least squares deviation between
the observed and the predicted distributions of branching times. These
computations rely heavily on numerical integrations. If fast =
FALSE
, integrations are done with R's integrate
function. If fast = TRUE
, a faster but less accurate function
provided in ape is used. If fitting a complex model to a large
phylogeny, a strategy might be to first use the latter option, and
then to use the estimates as starting values with fast = FALSE
.
A list with the following components:
para vector of estimates with names taken from the parameters in the specified functions.
SSthe minimized sum of squares.
convergenceoutput convergence criterion from
nlminb
.
messageid.
iterationsid.
evaluationsid.
Emmanuel Paradis
Paradis, E. (2011) Time-dependent speciation and extinction from phylogenies: a least squares approach. Evolution, 65, 661–672.
set.seed(3) tr <- rbdtree(0.1, 0.02) bd.time(tr, 0, 0) # fits a simple BD model bd.time(tr, 0, 0, ip = c(.1, .01)) # 'ip' is useful here ## the classic logistic: birth.logis <- function(a, b) 1/(1 + exp(-a*t - b)) ## Not run: bd.time(tr, birth.logis, 0, ip = c(0, -2, 0.01)) ## slow to get: ## $par ## a b death ## -0.003486961 -1.995983179 0.016496454 ## ## $SS ## [1] 20.73023 ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.