multiOptimaIntrinsic: Single Evolutionary Regime Model with Multiple Optima

View source: R/multiOptimaIntrinsic.R

multiOptimaIntrinsicR Documentation

Single Evolutionary Regime Model with Multiple Optima

Description

This model describes an evolutionary process where multiple optima exist. Lineages are attracted to an optima in their vicinity (this is handled as a stochastic process where which attract affects which population at a given point in time is weighted with respect to the proximity of a given population's trait value to the given optima), but as a lineage approaches the attractor that controls it, it may experience less directional evolution in the direction of the optima, and overall show more variation. This framework allows for the model to describe the evolution with respect to multiple optima simultaneously, without needing to treat individual transitions between optima (or macroevolutionary 'regimes') as a separate parameter. Thus, the optima exist within a single evolutionary regime, with only a scaling parameter present that allows more or less frequent transitions between optima by altering the impact of proximity to optima.

Usage

multiOptimaIntrinsic(params, states, timefrompresent)

Arguments

params

A vector containing input parameters for the given model (see Description below on what parameters).

states

Vector of current trait values for a taxon. May be multiple for some models, but generally expected to be only a single value. Multivariate TreEvo is not yet supported.

timefrompresent

The amount of time from the present - generally ignored except for time-dependent models.

Details

multiOptimaIntrinsic describes a model of intrinsic character evolution with multiple regimes. New character values are generated after one time step via a discrete-time OU process with a particular optima assigned to a particular regime, and each time-step a lineage has some finite probability of switching to a new regime, and being drawn to that regime's optima. The chance of a lineage being drawn to a particular optima is based on proximity to that optima, but the chance of switching to another regime is never completely negligible. The strength of the draw to the optima, the attraction strength, 'alpha', is the same for all regimes (all optima). This model has n input parameters: multiOptimaIntrinsic with params = sigma (rate of dispersion), alpha (strength of attraction to an optima), rho (an exponent scaling the weighting of distance to optima – this parameter will control the probability of a lineage switching optima), and, finally, n (two or more) theta values, which are the optima for the different macroevolutionary adaptive regimes.

Our biological interpretation for this model is a scenario in which optima represent fixed phenotypic trait values, conveying maximum adaptive benefit relative to neighboring values in trait space. The proximity of a population to an optima makes it more likely to fall under the influence of that regime, and thus experience directional selection in the direction of that optima. However, as there are multiple optima, a lineage might be influenced by multiple nearby optima over its evolutionary history, rather than simply the closest trait optimum. Lineages equidistant between multiple optima should be equally likely to be drawn to any specific optima, and populations in general should experience the influence of nearby optima inversely relative to their distance from the optima. Thus, a lineage very close to an optimum would show a large variance in its trait values as it circles the adaptive plateau, with infrequent but sudden, far-spanning movements toward a different optimum.

Value

A vector of values representing character displacement of that lineage over a single time step.

Author(s)

David W. Bapst

See Also

An alternative approach in TreEvo to estimating a macroevolutionary landscape with multiple optima is the Fokker-Planck-Kolmogorov (FPK) model, which can be fit with landscapeFPK_Intrinsic. This model does not assume a set number of optima nor that they have similar attractor strength, but parameters may be difficult to interpret in isolation, and fitting this model may be slower with TreEvo due to necessary linear algebra transformations. Other intrinsic models are described at intrinsicModels.

Examples


# three optima model, with strong attraction	
set.seed(1)
params<-c(
	sigma=0.1,
	alpha=0.7,
	rho=1,
	theta=c(-20,20,50)
	)	
	
multiOptimaIntrinsic(params=params, states=0, timefrompresent=NA)

# simulate n time-steps, repeat many times, plot results
repeatSimSteps<-function(params,trait=0,nSteps){
	for(i in 1:nSteps){
	# add to original trait value to get new trait value
		trait<-trait+multiOptimaIntrinsic(
			params=params, states=trait, timefrompresent=NA)
		}
	trait
	}
repSim<-replicate(300,repeatSimSteps(params,trait=0,100))
hist(repSim,main="Simulated Trait Values",breaks=20)


# same model above, with more switching between optima
set.seed(1)
params<-c(
	sigma=0.1,
	alpha=0.7,
	rho=0.5,
	theta=c(-20,20,50)
	)	
	
multiOptimaIntrinsic(params=params, states=0, timefrompresent=NA)

# simulate n time-steps, repeat many times, plot results
repeatSimSteps<-function(params,trait=0,nSteps){
	for(i in 1:nSteps){
	# add to original trait value to get new trait value
		trait<-trait+multiOptimaIntrinsic(
			params=params, states=trait, timefrompresent=NA)
		}
	trait
	}
repSim<-replicate(300,repeatSimSteps(params,trait=0,100))
hist(repSim,main="Simulated Trait Values",breaks=20)


bomeara/treevo documentation built on Aug. 19, 2023, 6:52 p.m.