# yule.time

From ape v3.0-2
0th

Percentile

##### Fits the Time-Dependent Yule Model

This function fits by maximum likelihood the time-dependent Yule model. The time is measured from the past (root.time) to the present.

Keywords
models
##### Usage
yule.time(phy, birth, BIRTH = NULL, root.time = 0, opti = "nlm", start = 0.01)
##### Details

The model fitted is a straightforward extension of the Yule model with covariates (see yule.cov). Rather than having heterogeneity among lineages, the speciation probability is the same for all lineages at a given time, but can change through time.

The function birth must meet these two requirements: (i) the parameters to be estimated are the formal arguments; (ii) time is named t in the body of the function. However, this is the opposite for the primitive BIRTH: t is the formal argument, and the parameters are used in its body. See the examples.

It is recommended to use BIRTH if possible, and required if speciation probability is constant on some time interval. If this primitive cannot be provided, a numerical integration is done with integrate.

The standard-errors of the parameters are computed with the Hessian of the log-likelihood function.

##### Value

An object of class "yule" (see yule).

##### References

Hubert, N., Paradis, E., Bruggemann, H. and Planes, S. (2011) Community assembly and diversification in Indo-Pacific coral reef fishes. Ecology and Evolution, 1, 229--277.

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

##### Examples
### define two models...
birth.logis <- function(a, b) 1/(1 + exp(-a*t - b)) # logistic
birth.step <- function(l1, l2, Tcl) { # 2 rates with one break-point
ans <- rep(l1, length(t))
ans[t > Tcl] <- l2
ans
}
### ... and their primitives:
BIRTH.logis <- function(t) log(exp(-a*t) + exp(b))/a + t
BIRTH.step <- function(t)
{
out <- numeric(length(t))
sel <- t <= Tcl
if (any(sel)) out[sel] <- t[sel] * l1
if (any(!sel)) out[!sel] <- Tcl * l1 + (t[!sel] - Tcl) * l2
out
}
data(bird.families)
### fit both models:
yule.time(bird.families, birth.logis)
yule.time(bird.families, birth.logis, BIRTH.logis) # same but faster
yule.time(bird.families, birth.step)  # fails
yule.time(bird.families, birth.step, BIRTH.step,
opti = "nlminb", start = c(.01, .01, 100))
Documentation reproduced from package ape, version 3.0-2, License: GPL (>= 2)

### Community examples

Looks like there are no examples yet.