Learn R Programming

paleoTS (version 0.4-1)

sim.OU: Simulate evolutionary time-series

Description

Generates an evolutionary time-series according to an Orstein-Uhlenbeck (OU) model.

Usage

sim.OU(ns = 20, anc = 0, theta = 10, alpha = 0.3, vs = 0.1, vp = 1, nn = rep(20, ns), tt = 0:(ns-1))
ou.M(anc, theta, aa, tt)
ou.V(vs, aa, tt)

Arguments

ns
number of samples in time-series
anc
ancestral phenotype at the start of the series
theta
phenotype of the evolutionary optimum
alpha
strength of the attracting force pulling the population to the optimum
vs
step variance of the random walk component of change
vp
within-population trait variance
nn
vector of the number of individuals in each sample
tt
vector of sample ages, increases from oldest to youngest
aa
strength of the attracting force pulling the population to the optimum (same as alpha)

Value

  • A paleoTS object for sim.OU. For ou.M and ou.V, a vector of means or variances, respectively, are generated.

Details

See Hansen (1997) for a description of this model in a macroevolutionary context. This model also arises naturally in microevolution as a finite population evolving in the vicinity of an optimum in the adaptive landscape; see Lande (1976) and Estes & Arnold (2007). Functions ou.M and ou.V are used internally by sim.OU and add.OU.curves to generate the means and variances of an OU process.

References

Lande, R. 1976. Natural selection and random genetic drift in phenotypic evolution. Evolution 30:314-334. Hansen, T. 1997. Stabilizing selection and the comparative analysis of adaptation. Evolution 51:1341-1351. Estes, S. & Arnold, S. J. 2007. Resolving the paradox of stasis: models of stabilizing selection explain evolutionary divergence on all timescales. American Naturalist 169:227-244. Hunt, G., M. Bell & M. Travis. 2008. Evolution towards a new adaptive optimum: phenotypic evolution in a fossil stickleback lineage. Evolution 62:700--710.

See Also

sim.GRW, opt.joint.OU

Examples

Run this code
x1<- sim.OU(ns=100, anc=0, theta=10, alpha=0.2, vs=0.1, vp=0.1, nn=rep(100, times=100), tt=0:99)
plot(x1)

Run the code above in your browser using DataLab