fit_dd_model_without_fossil: Fit a diversity-dependent diversification model to...

View source: R/fit_dd_model_without_fossil.R

fit_dd_model_without_fossilR Documentation

Fit a diversity-dependent diversification model to phylogenies without fossil lineages

Description

Wrapper around DDD::dd_ML(). Fits the parameters of a specified diversity-dependent model the reconstructed phylogeny of a single tree produced by comrad simulations.

Usage

fit_dd_model_without_fossil(
  branching_times,
  init_params,
  dd_model = dd_model_lc(),
  num_cycles = Inf,
  methode = "odeint::runge_kutta_cash_karp54",
  verbose = FALSE
)

Arguments

branching_times

a vector containing the branching times of a single, ultrametric (all tips reach the present) phylogenetic tree. Tip: from the full phylo, do phylo %>% ape::drop.fossil() %>% ape::branching.times().

init_params

named vector, initial values of the parameters to optimise. The names and number of parameters must match those specified in dd_model$params_check.

dd_model

a list with five named elements that together specify the diversity-dependent model:

  • name a two-letter code, the name of the model. First letter specifies the form of the speciation function, second letter the form of the extinction function: "l" for "linear", "x" for exponential, "c" for constant.

  • speciation_func, a function specifying the diversity-dependent speciation rate. Must take arguments params and N.

  • extinction_func, a function specifying the diversity-dependent extinction rate. Must take arguments params and N.

  • constraints a list of conditions that parameter values must satisfy. Each element is a function that takes arguments params and ..., and returns TRUE if the constraint is satisfied, FALSE if it isn't.

  • params_check a function that controls the format of params. Returns an error if the elements of params are named differently from what is expected or if the length differs from the expectation.

comrad contains several dd_model functions, see for example dd_model_lc().

num_cycles

passed to DDD::optimizer(), number of cycles of optimisation. Next cycle starts from the last vertices of the previous cycle.

methode

passed to DDD::optimizer(), a character specifying the methode to solve the DD master system, either numerically ("analytical") or numerically ("odeint::runge_kutta_cash_karp54" or another function from the odeint library)

verbose

logical, should the output of every optimisation iteration be printed to console?

Value

a one-row table with the model name, initial values of the parameters, maximum likelihood estimates and the maximum likelihood

Author(s)

Theo Pannetier


TheoPannetier/comrad documentation built on April 8, 2023, 8:06 a.m.