Learn R Programming

paleoTS (version 0.5-1)

opt.GRW: Numerically find maximum likelihood solutions to evolutionary models

Description

Functions to find maximum likelihood solutions to general random walk (opt.GRW), unbiased random walk opt.URW, and stasis models opt.Stasis.

Usage

opt.GRW(y, pool = TRUE, cl = list(fnscale = -1), meth = "L-BFGS-B", hess = FALSE)
opt.URW(y, pool = TRUE, cl = list(fnscale=-1), meth = "L-BFGS-B", hess = FALSE)
opt.Stasis(y, pool = TRUE, cl = list(fnscale=-1), meth = "L-BFGS-B", hess = FALSE)
opt.StrictStasis(y, pool = TRUE, cl = list(fnscale=-1), meth = "L-BFGS-B", hess = FALSE)

Arguments

y

a paleoTS object

cl

control list, passed to function optim

pool

logical indicating whether to pool variances across samples

meth

optimization method, passed to function optim

hess

logical, indicating whether to calculate standard errors from the Hessian matrix

Value

A paleoTSfit object.

Details

These functions numerically search a log-likelihood surface for its optimum--they are a convenient wrapper to optim. Arguments meth, cl, and hess are passed to optim; see that function's help for details. These are included to allow sophisticated users greater control over the optimization; the defaults seem to work well for most, but not all sequences. For meth="L-BFGS-B", some parameters are constrained to be non-negative, which is useful paramters which cannot truly be negative, such as vstep (random walk) and omega (stasis model).

Initial estimates to start the optimization come from analytical solutions based on assuming equal sampling error across samples and evenly spaced samples in time (functions mle.GRW, mle.URW and mle.Stasis).

References

Hunt, G. 2006. Fitting and comparing models of phyletic evolution: random walks and beyond. Paleobiology 32:578--601. Hunt, G., M. J. Hopkins, and S. L. Lidgard 2015. Simple versus complex models of trait evolution and stasis as a response to environmental change. PNAS 112:4885--4890.

See Also

logL.GRW, fit3models, fitMult, sim.GRW , as.paleoTSfit

Examples

Run this code
# NOT RUN {
 ## generate data for a directional sequence
 y <- sim.GRW(ns=30, ms=1, vs=1)
 plot(y)
 m.rw<- opt.GRW(y)
 m.rwu<- opt.URW(y)
 m.sta<- opt.Stasis(y)
 m.ss<- opt.StrictStasis(y)

 ## print log-likelihoods; easier to use function fit4models()
 compareModels(m.rw, m.rwu, m.sta, m.ss)
# }

Run the code above in your browser using DataLab