This translation is older than the original page and might be outdated. See what has changed.

User Tools

Site Tools


en:ecovirt:roteiro:pop_str:pstr_ser

Sensitivity and elasticity in structured populations - Tutorial in R

Sensitivity and elasticity are two terms referring to the relative importance of each transition (i.e., each arrow in the life cycle diagram, or equivalently each term in the Leslie matrix) in determining $\lambda$. They are both important to give information about the stable stage distribution and reproductive values of each stage.

Sensitivity is the direct contribution of each transition to $\lambda$. In mathematical terms, the sensitivity of the $a_{ij}$ element of the projection matrix $A$ corresponds to the change in $\lambda$ due to a small change in that element ($ \frac{\delta \lambda}{\delta a_{ij}}$). With some algebra, that's equal to:

$ \frac{\delta \lambda}{\delta a_{ij}} = \frac{\nu_{ij} \omega_{ij}}{vw}$

vw.s <- v %*% t(w) 
(S <- vw.s/as.numeric(v %*% w))

Elasticity is equal to the sensitivity weighted by the transition elements. It corresponds to the sensitivities, but taking into account the relative magnitude of the transition elements:

$ e_{ij} = \frac{a_{ij} \delta \lambda}{\lambda \delta a_{ij}}$

L1 <- Re(aval.A$values[1])
elas <- (A/L1) * S
round(elas, 3)

Looks complicated?!

However, you already made all this calculations, and you already understood everything! When we did the tutorial on the matrix perturbation, we have calculated the contribution of one element from the transition matrix (the adult survival) in determining $\lambda$. The sensitivity is exactly that… only it's derived analytically from the transition matrix.

The elasticity, on the other hand, is a measure of sensitivity proportional to the effect. That's a way to figure out whether a transition element may double and that will have little impact on lambda, or whether that element may double and have a striking effect on lambda, regardless of the original values.

Comparing the analyses

Now we will run some analyses using matrix algebra, and compare them with the R package popbio, that runs matrix analyses of population dynamics. To finish the tutorial, we will figure out the sensitivity and elasticities of our cactus model.

####################
### EigenAnalysis ####
####################
plot(1:100, lamb.seq, xlab="lambda", ylab="times", cex=0.7)
eigen.cory=eigen(cory)
eigen.tcory=eigen(t(cory))
lamb=max(Re(eigen.cory$values)) # lambda 1 agrees with the expected
lamb
abline(h=lamb,col="red")
v.cory=Re(eigen.cory$vectors[,which.max(Re(eigen.cory$values))]) # the proportional reproductive value is ok!
v.cory
vr.cory=v.cory/v.cory[1]
vr.cory   # now we have the standardized reproductive value 

w.cory=Re(eigen.tcory$vectors[,which.max(Re(eigen.tcory$values))])#stage stable vector ok!
w.cory/sum(w.cory)
prop.est[100,]

### sensitivity

vms.cory=vr.cory%*%t(w.cory)
S.cory=vms.cory/as.numeric(vr.cory%*%w.cory) ## It works!!! But we need to substitute by zero the absent transitions
S.cory
### elasticity
(cory/lamb)*S.cory
##############################
## let's see if our calculations match those from popbio
#############################
# if you don't have the popbio package installed, run the following without the "#"
# install.packages("popbio")
library(popbio)
eigen.analysis(cory)

Exercises

You have been hired to analyse a management plan for the extraction of the Corythopha robbinsorum cactus as an ornamental plant. The plan is based on the statement that: “natural populations of this species have positive growth rate and support more than 20% of post-reproductive extraction of adult individuals, with no extinction risk”. The management plan authors have used simple matrix models to support this affirmation.

Redo the extraction scenario as described, using in your simulation the examples used above, including the same initial population sizes, and support or critique the management plan, based on your simulation and the premises of the population model that was used.

cory<-matrix(c(0.434, 0.333,0,0,0.61, 0.304,0.56, 0, 0.956), ncol=3, nrow=3)
cory
n0=matrix(c(10,5,2), ncol=1)
## tempo 1
	n1 <-  cory %*% n0 
	n1[3] <- n1[3]-0.2 * n1[3]

To learn more

Gotelli, N. J. 2007. Ecologia. Cap.3- Crescimento Populacional Estruturado. Pp. 49-82. Ed. Planta.

Gurevitch, J, Scheiner, S.M, Fox, G.A. 2009. Ecologia Vegetal. Cap. 5 - Ed. Artmed, São Paulo.

Freckleton, R.P., Silva Matos, D.M., Bovi, M.L.A & Watkinson, A.R. 2003. Predicting the impacts of harvesting using structured population models: the importance of density-dependence and timing of harvest for a tropical palm tree. Journal of Applied Ecology, 40: 846-858.

Silva Matos, D.M., Freckleton, R.P. & Watkinson, A.R. 1999. The role of density dependence in the population dynamics of a tropical palm. Ecology, 80: 2635-2650.

en/ecovirt/roteiro/pop_str/pstr_ser.txt · Last modified: 2017/10/03 10:39 by melina.leite