# bd.time

##### Time-Dependent Birth-Death Models

This function fits a used-defined time-dependent birth-death model.

- Keywords
- models

##### Usage

```
bd.time(phy, birth, death, BIRTH = NULL, DEATH = NULL,
ip, lower, upper, fast = FALSE, boot = 0, trace = 0)
```

##### Arguments

- phy
an object of class

`"phylo"`

.- 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

`birth`

.- DEATH
id. for

`death`

.- 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

`trace`

steps. This can be helpful if convergence is particularly slow.

##### Details

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`

.

##### Value

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.

##### References

Paradis, E. (2011) Time-dependent speciation and extinction from
phylogenies: a least squares approach. *Evolution*, **65**,
661--672.

##### See Also

##### Examples

```
# NOT RUN {
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
# }
```

*Documentation reproduced from package ape, version 4.1, License: GPL (>= 2)*