Chapter 11 Special Analyses I: Life Table Response Experiments

Karma police arrest this man He talks in maths, he buzzes like a fridge He’s like a detuned radio.

— Radiohead, Karma Police (1997)

A life table response experiment (LTRE) is a set of methodologies developed to analyze the dynamics of a population with respect to its vital rates (Caswell 1989). The name refers to life tables, which were originally developed in the 17th century by John Graunt and Edmund Halley to show the age-specific mortality probabilities, fecundity rates, and overall survivorship of a cohort over time, or a population at a slice in time (Greenwood 1938). LTREs, as developed originally by Caswell (1989) and further developed by others, now typically use matrix projection models and discretized integral projection models to assess how population dynamics change as a function of some treatment or set of treatments, which may be observational factors or true experimental treatments.

Imagine that you work for a management agency, and your job is to develop a management plan for a rare organism. Perhaps you have attemptesd some experimental management on the population, splitting the population into a treatment portion and a control area. As you have monitored the population over time, you begin to note shifts in the population growth rate. However, you may wish to know why the changes in population growth rate have occurred. At the coarse scale, you might imply that the treatment is responsible for the change (and, indeed, one would hope that this is indeed the case, rather than the shifts in population growth rate being due to some artefactual reason, such as biased geography in the application of the treatment). However, at a finer scale, you may wish to know what happened to the specific vital rates to cause population growth rate to change.

In a standard LTRE, the ultimate response term is the deterministic population growth rate, \(\lambda\). The vital rates are the matrix elements in the MPM. LTREs may then be analyzed with treatments classified as fixed or random, nested or factorial, one-way or two-way (or more), or using a regression framework (Caswell 2001). More recent developments have expanded LTREs to include stochastic analysis, where the response is the stochastic population growth rate, \(a\) (Caswell 2010; Davison et al. 2010, 2013, 2019). In lefko3, we currently implement the exact one-way fixed deterministic LTRE (Caswell 2001), and the approximate stochastic LTRE (Davison et al. 2010), with plans to develop further methods later.

11.1 The one-way fixed LTRE

For this explanation of the method, we will use the notation provided by Caswell (2001). For this purpose, we assume that \(\mathbf{A}^{(m)}\) is a matrix corresponding to treatment \(m\). We also assume that one matrix serves as a control or reference matrix, and this is given as \(\mathbf{A}^{(r)}\). Under this scenario, we have one further matrix corresponding to the midway matrix \(\mathbf{A}^{\dagger}\) (meaning that it is midway between a treatment \(i\) and the control \(r\)). Note that below, \(m\) corresponds to the number of treatment matrices.

\[\begin{equation} \mathbf{A}^{\dagger} = \frac{1}{2} (\mathbf{A}^{(m)} + \mathbf{A}^{(r)}) \tag{11.1} \end{equation}\]

Using this notation, the asymptotic population growth rate \(\lambda\) of some treatment \(m\) can be approximated as the following.

\[\begin{equation} \lambda^{(m)} \approx \lambda^{(r)} + \left. \sum_{i,j} (a_{ij}^{(m)} - a_{ij}^{(r)}) \frac{\partial \lambda}{\partial a_{ij}}\right|_{\mathbf{A}^{\dagger}} \tag{11.2} \end{equation}\]

In equation @ref(eq:ltre_l), we see that the differences in respective matrix elements between the treatment matrix and the reference matrix are multiplied by the sensitivity of the asymptotic growth rate of the midway matrix to that element. These products are referred to as the contributions of shifts in that element to shifts in \(\lambda\), and are generally output in matrix format, for example as matrix \(\mathbf{C^{(m)}}\) for treatment \(m\). This matrix has the same dimensions and relates to the same respective transitions as the original treatment matrix. The contributions sum to the difference in \(\lambda\), and so may also be summed to assess, for example, how stasis, growth, shrinkage, and fecundity shift and contribute to the noted difference in population growth rate.

11.2 The approximate stochastic LTRE

The one-way fixed LTRE is quite useful, but is conducted with reference to the asymptotic growth rate and so cannot properly deal with temporal shifts in matrix elements. If the stochastic population growth rate, \(a = \text{log} \lambda _{S}\), is a more realistic measure of the population, and we have matrices developed across time for both a treatment and a control, then we may wish to perform a stochastic LTRE (sLTRE) in order to assess the impacts of changes in both the mean matrix elements on \(a\) across time, and the variation in matrix elements on \(a\) across time.

Since 2010, several stochastic life table response experiment (sLTREs) methodologies have been developed. Package lefko3 currently implements the Davison et al. (2010) approximate sLTRE. In contrast to the fixed one-way LTRE, the treatment and reference here are not single matrices, but sets of matrices that vary randomly across time. Here, we assume that \(log\lambda^{(m)}\) and \(log\lambda^{(R)}\) are the log stochastic growth rates of the treatment MPM and the reference MPM, respectively.

\[\begin{equation} \Delta \text{log} \lambda _{S} = log\lambda^{(m)} - log\lambda^{(R)} \approx \sum_{j,i} [log \mu_{ji}^{(m)} - log \mu_{ji}^{(R)}] E_{ji}^{\mu} + [log \sigma_{ji}^{(m)} - log \sigma_{ji}^{(R)}] E_{ji}^{\sigma} \tag{11.3} \end{equation}\]

In the above equation, \(E_{ji}^{\mu}\) and \(E_{ji}^{\sigma}\) are the stochastic elasticities of the log stochastic growth rate to changes in the mean and standard deviation, respectively, of the element at row \(j\) and column \(i\) in the reference matrix set. These are the same stochastic elasticities as described in @ref(sec:stoch_elas). Internally, these are estimated using a simulated run in which the long-run properties of the projection are evaluated.

11.3 Example analysis with Anthyllis vulneraria

Next we will illustrate both one-way fixed LTREs and stochastic LTREs using the example published by Davison et al. (2010). That paper focused on nine natural populations of the perennial herb Anthyllis vulneraria, also known as kidney vetch, occurring in calcareous grasslands in the Viroin Valley of southwestern Belgium. We provide a description of the plant and populations in 1.6.3. The plant is a short-lived, rosette-forming legume with a complex life cycle including stasis and retrogression between four stages but no seedbank (seedlings, juveniles, small adults and large adults; Figure 11.1).

Figure 11.1: Life history model of Anthyllis vulneraria. Solid arrows indicate survival transitions while dashed arrows indicate fecundity transitions.

Nine populations (N = 27-50,000) growing in distinct grassland fragments were surveyed between 2003 and 2006, yielding three (4x4) annual transition matrices for each population. The populations occurred within grassland fragments, and were mostly managed as nature reserves through rotational sheep grazing. These surveys coincided with a summer heat wave (2003), followed by a spring drought (2005) and an even more extreme heat wave (2006).

Our goal in this exercise will be to analyze the demographic differences between populations using deterministic and stochastic life table response experiments (LTRE and sLTRE). We will use the matrices analyzed in Davison et al. (2010), and attempt to reproduce their results.

11.3.1 Life history model development and data organization

We will first need to describe the life history characterizing the dataset, matching it to our analyses properly with a stageframe. Since we do not have the original demographic dataset that produced the published matrices, we do not need to know the exact sizes of plants and so will use proxy values. These proxy values need to be unique and non-negative, and they need non-overlapping bins usable as size classes defining each stage. However, since we are not analyzing size itself here, they do not need any further basis in reality. Other characteristics must be exact and realistic to make sure that the analyses work properly, including all other stage descriptions such as reproductive status, propagule status, and observation status.

sizevector <- c(1, 1, 2, 3) # These sizes are not from the original paper
stagevector <- c("Sdl", "Veg", "SmFlo", "LFlo")
repvector <- c(0, 0, 1, 1)
obsvector <- c(1, 1, 1, 1)
matvector <- c(0, 1, 1, 1)
immvector <- c(1, 0, 0, 0)
propvector <- c(0, 0, 0, 0)
indataset <- c(1, 1, 1, 1)
binvec <- c(0.5, 0.5, 0.5, 0.5)
comments <- c("Seedling", "Vegetative adult", "Small flowering",
  "Large flowering")

anthframe <- sf_create(sizes = sizevector, stagenames = stagevector,
  repstatus = repvector, obsstatus = obsvector, matstatus = matvector,
  immstatus = immvector, indataset = indataset, binhalfwidth = binvec,
  propstatus = propvector, comments = comments)

anthframe
>   stage size size_b size_c min_age max_age repstatus obsstatus propstatus
> 1   Sdl    1     NA     NA      NA      NA         0         1          0
> 2   Veg    1     NA     NA      NA      NA         0         1          0
> 3 SmFlo    2     NA     NA      NA      NA         1         1          0
> 4  LFlo    3     NA     NA      NA      NA         1         1          0
>   immstatus matstatus indataset binhalfwidth_raw sizebin_min sizebin_max
> 1         1         0         1              0.5         0.5         1.5
> 2         0         1         1              0.5         0.5         1.5
> 3         0         1         1              0.5         1.5         2.5
> 4         0         1         1              0.5         2.5         3.5
>   sizebin_center sizebin_width binhalfwidthb_raw sizebinb_min sizebinb_max
> 1              1             1                NA           NA           NA
> 2              1             1                NA           NA           NA
> 3              2             1                NA           NA           NA
> 4              3             1                NA           NA           NA
>   sizebinb_center sizebinb_width binhalfwidthc_raw sizebinc_min sizebinc_max
> 1              NA             NA                NA           NA           NA
> 2              NA             NA                NA           NA           NA
> 3              NA             NA                NA           NA           NA
> 4              NA             NA                NA           NA           NA
>   sizebinc_center sizebinc_width group         comments
> 1              NA             NA     0         Seedling
> 2              NA             NA     0 Vegetative adult
> 3              NA             NA     0  Small flowering
> 4              NA             NA     0  Large flowering

Next, we will load data for this vignette, then take a look at a summary.

data("anthyllis")

summary(anthyllis)
> 
> This ahistorical lefkoMat object contains 27 matrices.
> 
> Each matrix is square with 4 rows and columns, and a total of 16 elements.
> A total of 167 survival transitions were estimated, with 6.185 per matrix.
> A total of 48 fecundity transitions were estimated, with 1.778 per matrix.
> This lefkoMat object covers 1 population, 9 patches, and 3 time steps.
> 
> Survival probability sum check (each matrix represented by column in order):
>           [,1]  [,2]   [,3]   [,4]   [,5]  [,6]   [,7]  [,8]  [,9] [,10]  [,11]
> Min.    0.0667 0.500 0.0625 0.0769 0.0909 0.000 0.0000 0.333 0.171 0.000 0.0000
> 1st Qu. 0.0810 0.575 0.1708 0.1192 0.1334 0.075 0.0375 0.405 0.268 0.170 0.0000
> Median  0.1198 0.657 0.2106 0.3077 0.2276 0.100 0.1706 0.453 0.350 0.239 0.0000
> Mean    0.1599 0.637 0.2209 0.4231 0.2303 0.175 0.1895 0.469 0.320 0.203 0.0556
> 3rd Qu. 0.1987 0.720 0.2607 0.6116 0.3245 0.200 0.3225 0.517 0.402 0.271 0.0556
> Max.    0.3333 0.736 0.4000 1.0000 0.3750 0.500 0.4167 0.636 0.409 0.333 0.2222
>         [,12]  [,13] [,14]  [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22]
> Min.    0.000 0.0000 0.000 0.0370 0.333 0.000 0.238  0.00 0.000 0.000 0.000
> 1st Qu. 0.375 0.0000 0.193 0.0408 0.394 0.381 0.310  0.00 0.500 0.000 0.125
> Median  0.500 0.0163 0.313 0.0657 0.564 0.518 0.410  0.00 0.833 0.250 0.271
> Mean    0.409 0.0510 0.281 0.0705 0.565 0.420 0.388  0.25 0.667 0.304 0.260
> 3rd Qu. 0.534 0.0673 0.401 0.0954 0.736 0.557 0.488  0.25 1.000 0.554 0.406
> Max.    0.636 0.1714 0.500 0.1136 0.800 0.645 0.493  1.00 1.000 0.714 0.500
>         [,23] [,24]  [,25] [,26]  [,27]
> Min.    0.000 0.000 0.0000 0.000 0.0000
> 1st Qu. 0.500 0.250 0.0000 0.375 0.0833
> Median  0.762 0.333 0.0833 0.583 0.2556
> Mean    0.631 0.323 0.0833 0.542 0.3153
> 3rd Qu. 0.893 0.406 0.1667 0.750 0.4875
> Max.    1.000 0.625 0.1667 1.000 0.7500

We have 27 matrices, each four rows by four columns. These are raw matrices, so they are not completely full where matrix elements are possible. Let’s take a look at the first such matrix as an example.

anthyllis$A[[1]]
>            [,1]       [,2]       [,3]       [,4]
> [1,] 0.00000000 0.00000000 1.74000000 1.74000000
> [2,] 0.20833333 0.00000000 0.00000000 0.05714286
> [3,] 0.04166667 0.07692308 0.00000000 0.00000000
> [4,] 0.08333333 0.07692308 0.06666667 0.02857143

This is an A matrix, meaning that it include all survival-transitions and fecundity for population C as a whole over the interval 2003 to 2004. The corresponding U and F matrices were not provided in that paper, although it is most likely that the elements valued at 1.74 in the top right-hand corner are only composed of fecundity values while the rest of the matrix is only composed of survival transitions (this might not be the case if clonal reproduction were possible). The order of rows and columns corresponds to the order of stages in the stageframe anthframe.

Our anthyllis dataset is a full lefkoMat object, so it already includes a stage frame (in other words, we did not really need to make object anthframe). This is included as object ahstages within its structure. It also includes a labels element that shows the order of matrices by population, patch, and time. Let’s take a look at that object here.

anthyllis
> $A
> $A[[1]]
>            [,1]       [,2]       [,3]       [,4]
> [1,] 0.00000000 0.00000000 1.74000000 1.74000000
> [2,] 0.20833333 0.00000000 0.00000000 0.05714286
> [3,] 0.04166667 0.07692308 0.00000000 0.00000000
> [4,] 0.08333333 0.07692308 0.06666667 0.02857143
> 
> $A[[2]]
>           [,1]      [,2] [,3] [,4]
> [1,] 0.0000000 0.0000000  0.3  0.6
> [2,] 0.3218391 0.1428571  0.0  0.0
> [3,] 0.1609195 0.2857143  0.0  0.0
> [4,] 0.2528736 0.2857143  0.5  0.6
> 
> $A[[3]]
>      [,1]       [,2]    [,3]       [,4]
> [1,]  0.0 0.00000000 0.50625 0.67500000
> [2,]  0.0 0.00000000 0.00000 0.03571429
> [3,]  0.1 0.06896552 0.06250 0.10714286
> [4,]  0.3 0.13793103 0.00000 0.07142857
> 
> $A[[4]]
>           [,1] [,2]      [,3]       [,4]
> [1,] 0.0000000  0.0 2.4400000 6.56923077
> [2,] 0.1964286  0.0 0.0000000 0.00000000
> [3,] 0.1250000  0.5 0.0000000 0.00000000
> [4,] 0.1607143  0.5 0.1333333 0.07692308
> 
> $A[[5]]
>            [,1]       [,2]  [,3]       [,4]
> [1,] 0.00000000 0.00000000 0.450 0.64615385
> [2,] 0.06557377 0.09090909 0.125 0.00000000
> [3,] 0.03278689 0.00000000 0.125 0.07692308
> [4,] 0.04918033 0.00000000 0.125 0.23076923
> 
> $A[[6]]
>            [,1] [,2] [,3] [,4]
> [1,] 0.00000000  0.0 2.85 3.99
> [2,] 0.08333333  0.0 0.00 0.00
> [3,] 0.00000000  0.0 0.00 0.00
> [4,] 0.41666667  0.1 0.00 0.10
> 
> $A[[7]]
>            [,1] [,2]  [,3]       [,4]
> [1,] 0.00000000    0 1.815 7.05833333
> [2,] 0.07594937    0 0.050 0.08333333
> [3,] 0.13924051    0 0.000 0.25000000
> [4,] 0.07594937    0 0.000 0.08333333
> 
> $A[[8]]
>           [,1]      [,2]       [,3]      [,4]
> [1,] 0.0000000 0.0000000 1.23333333 7.4000000
> [2,] 0.2238806 0.0000000 0.11111111 0.1428571
> [3,] 0.1343284 0.2727273 0.16666667 0.1428571
> [4,] 0.1194030 0.3636364 0.05555556 0.1428571
> 
> $A[[9]]
>            [,1]  [,2]       [,3]      [,4]
> [1,] 0.00000000 0.000 1.06000000 3.3727273
> [2,] 0.07317073 0.025 0.03333333 0.0000000
> [3,] 0.03658537 0.150 0.10000000 0.1363636
> [4,] 0.06097561 0.225 0.16666667 0.2727273
> 
> $A[[10]]
>       [,1] [,2]       [,3]      [,4]
> [1,] 0.000    0 0.24545454 2.1000000
> [2,] 0.000    0 0.04545454 0.0000000
> [3,] 0.125    0 0.09090909 0.0000000
> [4,] 0.125    0 0.09090909 0.3333333
> 
> $A[[11]]
>           [,1] [,2] [,3] [,4]
> [1,] 0.0000000    0  1.1 1.54
> [2,] 0.1111111    0  0.0 0.00
> [3,] 0.0000000    0  0.0 0.00
> [4,] 0.1111111    0  0.0 0.00
> 
> $A[[12]]
>            [,1] [,2] [,3] [,4]
> [1,] 0.00000000  0.0    0  1.5
> [2,] 0.00000000  0.0    0  0.0
> [3,] 0.09090909  0.0    0  0.0
> [4,] 0.54545455  0.5    0  0.5
> 
> $A[[13]]
>            [,1] [,2]     [,3]       [,4]
> [1,] 0.00000000    0 1.785366 1.85652174
> [2,] 0.12857143    0 0.000000 0.01086956
> [3,] 0.02857143    0 0.000000 0.00000000
> [4,] 0.01428571    0 0.000000 0.02173913
> 
> $A[[14]]
>            [,1]       [,2]  [,3]   [,4]
> [1,] 0.00000000 0.00000000 14.25 16.625
> [2,] 0.13144330 0.05714286  0.00  0.250
> [3,] 0.14432990 0.00000000  0.00  0.000
> [4,] 0.09278351 0.20000000  0.00  0.250
> 
> $A[[15]]
>            [,1]       [,2]       [,3]       [,4]
> [1,] 0.00000000 0.00000000 0.59464286 1.76590909
> [2,] 0.00000000 0.00000000 0.01785714 0.00000000
> [3,] 0.02105263 0.01851852 0.03571429 0.04545454
> [4,] 0.02105263 0.01851852 0.03571429 0.06818182
> 
> $A[[16]]
>      [,1]      [,2]       [,3]      [,4]
> [1,] 0.00 0.0000000 11.5000000 2.7758621
> [2,] 0.60 0.2857143  0.3333333 0.2413793
> [3,] 0.04 0.1428571  0.0000000 0.0000000
> [4,] 0.16 0.2857143  0.0000000 0.1724138
> 
> $A[[17]]
>            [,1]       [,2] [,3]       [,4]
> [1,] 0.00000000 0.00000000 3.78 1.22500000
> [2,] 0.28358209 0.17105263 0.00 0.16666667
> [3,] 0.08457711 0.02631579 0.00 0.05555556
> [4,] 0.13930348 0.44736842 0.00 0.30555556
> 
> $A[[18]]
>            [,1]      [,2]       [,3]       [,4]
> [1,] 0.00000000 0.0000000 1.54285714 1.03561644
> [2,] 0.12698413 0.1052632 0.04761905 0.05479452
> [3,] 0.09523809 0.1578947 0.19047619 0.08219178
> [4,] 0.11111111 0.2236842 0.00000000 0.35616438
> 
> $A[[19]]
>      [,1] [,2] [,3]  [,4]
> [1,]    0    0 0.15 0.175
> [2,]    0    0 0.00 0.000
> [3,]    0    0 0.00 0.000
> [4,]    1    0 0.00 0.000
> 
> $A[[20]]
>      [,1]      [,2] [,3] [,4]
> [1,]    0 0.0000000    0 0.25
> [2,]    0 0.0000000    0 0.00
> [3,]    0 0.0000000    0 0.00
> [4,]    1 0.6666667    0 1.00
> 
> $A[[21]]
>      [,1] [,2] [,3]      [,4]
> [1,] 0.00    0    0 1.4285714
> [2,] 0.00    0    0 0.1428571
> [3,] 0.25    0    0 0.0000000
> [4,] 0.25    0    0 0.5714286
> 
> $A[[22]]
>      [,1]      [,2] [,3]   [,4]
> [1,] 0.00 0.0000000  0.7 0.6125
> [2,] 0.25 0.0000000  0.0 0.1250
> [3,] 0.00 0.0000000  0.0 0.0000
> [4,] 0.25 0.1666667  0.0 0.2500
> 
> $A[[23]]
>           [,1]      [,2] [,3] [,4]
> [1,] 0.0000000 0.0000000    0  0.6
> [2,] 0.2857143 0.0000000    0  0.0
> [3,] 0.2857143 0.3333333    0  0.0
> [4,] 0.2857143 0.3333333    0  1.0
> 
> $A[[24]]
>           [,1] [,2]      [,3]   [,4]
> [1,] 0.0000000    0 0.7000000 0.6125
> [2,] 0.0000000    0 0.0000000 0.0000
> [3,] 0.0000000    0 0.0000000 0.0000
> [4,] 0.3333333    0 0.3333333 0.6250
> 
> $A[[25]]
>           [,1] [,2] [,3]      [,4]
> [1,] 0.0000000    0  2.1 0.8166667
> [2,] 0.1666667    0  0.0 0.0000000
> [3,] 0.0000000    0  0.0 0.0000000
> [4,] 0.0000000    0  0.0 0.1666667
> 
> $A[[26]]
>           [,1] [,2] [,3] [,4]
> [1,] 0.0000000  0.0    0    7
> [2,] 0.3333333  0.5    0    0
> [3,] 0.0000000  0.0    0    0
> [4,] 0.3333333  0.0    0    1
> 
> $A[[27]]
>           [,1] [,2] [,3] [,4]
> [1,] 0.0000000 0.00    0  1.4
> [2,] 0.0000000 0.00    0  0.0
> [3,] 0.0000000 0.00    0  0.2
> [4,] 0.1111111 0.75    0  0.2
> 
> 
> $U
> $U[[1]]
>            [,1]       [,2]       [,3]       [,4]
> [1,] 0.00000000 0.00000000 0.00000000 0.00000000
> [2,] 0.20833333 0.00000000 0.00000000 0.05714286
> [3,] 0.04166667 0.07692308 0.00000000 0.00000000
> [4,] 0.08333333 0.07692308 0.06666667 0.02857143
> 
> $U[[2]]
>           [,1]      [,2] [,3] [,4]
> [1,] 0.0000000 0.0000000  0.0  0.0
> [2,] 0.3218391 0.1428571  0.0  0.0
> [3,] 0.1609195 0.2857143  0.0  0.0
> [4,] 0.2528736 0.2857143  0.5  0.6
> 
> $U[[3]]
>      [,1]       [,2]   [,3]       [,4]
> [1,]  0.0 0.00000000 0.0000 0.00000000
> [2,]  0.0 0.00000000 0.0000 0.03571429
> [3,]  0.1 0.06896552 0.0625 0.10714286
> [4,]  0.3 0.13793103 0.0000 0.07142857
> 
> $U[[4]]
>           [,1] [,2]      [,3]       [,4]
> [1,] 0.0000000  0.0 0.0000000 0.00000000
> [2,] 0.1964286  0.0 0.0000000 0.00000000
> [3,] 0.1250000  0.5 0.0000000 0.00000000
> [4,] 0.1607143  0.5 0.1333333 0.07692308
> 
> $U[[5]]
>            [,1]       [,2]  [,3]       [,4]
> [1,] 0.00000000 0.00000000 0.000 0.00000000
> [2,] 0.06557377 0.09090909 0.125 0.00000000
> [3,] 0.03278689 0.00000000 0.125 0.07692308
> [4,] 0.04918033 0.00000000 0.125 0.23076923
> 
> $U[[6]]
>            [,1] [,2] [,3] [,4]
> [1,] 0.00000000  0.0    0  0.0
> [2,] 0.08333333  0.0    0  0.0
> [3,] 0.00000000  0.0    0  0.0
> [4,] 0.41666667  0.1    0  0.1
> 
> $U[[7]]
>            [,1] [,2] [,3]       [,4]
> [1,] 0.00000000    0 0.00 0.00000000
> [2,] 0.07594937    0 0.05 0.08333333
> [3,] 0.13924051    0 0.00 0.25000000
> [4,] 0.07594937    0 0.00 0.08333333
> 
> $U[[8]]
>           [,1]      [,2]       [,3]      [,4]
> [1,] 0.0000000 0.0000000 0.00000000 0.0000000
> [2,] 0.2238806 0.0000000 0.11111111 0.1428571
> [3,] 0.1343284 0.2727273 0.16666667 0.1428571
> [4,] 0.1194030 0.3636364 0.05555556 0.1428571
> 
> $U[[9]]
>            [,1]  [,2]       [,3]      [,4]
> [1,] 0.00000000 0.000 0.00000000 0.0000000
> [2,] 0.07317073 0.025 0.03333333 0.0000000
> [3,] 0.03658537 0.150 0.10000000 0.1363636
> [4,] 0.06097561 0.225 0.16666667 0.2727273
> 
> $U[[10]]
>       [,1] [,2]       [,3]      [,4]
> [1,] 0.000    0 0.00000000 0.0000000
> [2,] 0.000    0 0.04545454 0.0000000
> [3,] 0.125    0 0.09090909 0.0000000
> [4,] 0.125    0 0.09090909 0.3333333
> 
> $U[[11]]
>           [,1] [,2] [,3] [,4]
> [1,] 0.0000000    0    0    0
> [2,] 0.1111111    0    0    0
> [3,] 0.0000000    0    0    0
> [4,] 0.1111111    0    0    0
> 
> $U[[12]]
>            [,1] [,2] [,3] [,4]
> [1,] 0.00000000  0.0    0  0.0
> [2,] 0.00000000  0.0    0  0.0
> [3,] 0.09090909  0.0    0  0.0
> [4,] 0.54545455  0.5    0  0.5
> 
> $U[[13]]
>            [,1] [,2] [,3]       [,4]
> [1,] 0.00000000    0    0 0.00000000
> [2,] 0.12857143    0    0 0.01086956
> [3,] 0.02857143    0    0 0.00000000
> [4,] 0.01428571    0    0 0.02173913
> 
> $U[[14]]
>            [,1]       [,2] [,3] [,4]
> [1,] 0.00000000 0.00000000    0 0.00
> [2,] 0.13144330 0.05714286    0 0.25
> [3,] 0.14432990 0.00000000    0 0.00
> [4,] 0.09278351 0.20000000    0 0.25
> 
> $U[[15]]
>            [,1]       [,2]       [,3]       [,4]
> [1,] 0.00000000 0.00000000 0.00000000 0.00000000
> [2,] 0.00000000 0.00000000 0.01785714 0.00000000
> [3,] 0.02105263 0.01851852 0.03571429 0.04545454
> [4,] 0.02105263 0.01851852 0.03571429 0.06818182
> 
> $U[[16]]
>      [,1]      [,2]      [,3]      [,4]
> [1,] 0.00 0.0000000 0.0000000 0.0000000
> [2,] 0.60 0.2857143 0.3333333 0.2413793
> [3,] 0.04 0.1428571 0.0000000 0.0000000
> [4,] 0.16 0.2857143 0.0000000 0.1724138
> 
> $U[[17]]
>            [,1]       [,2] [,3]       [,4]
> [1,] 0.00000000 0.00000000    0 0.00000000
> [2,] 0.28358209 0.17105263    0 0.16666667
> [3,] 0.08457711 0.02631579    0 0.05555556
> [4,] 0.13930348 0.44736842    0 0.30555556
> 
> $U[[18]]
>            [,1]      [,2]       [,3]       [,4]
> [1,] 0.00000000 0.0000000 0.00000000 0.00000000
> [2,] 0.12698413 0.1052632 0.04761905 0.05479452
> [3,] 0.09523809 0.1578947 0.19047619 0.08219178
> [4,] 0.11111111 0.2236842 0.00000000 0.35616438
> 
> $U[[19]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0    0    0
> [2,]    0    0    0    0
> [3,]    0    0    0    0
> [4,]    1    0    0    0
> 
> $U[[20]]
>      [,1]      [,2] [,3] [,4]
> [1,]    0 0.0000000    0    0
> [2,]    0 0.0000000    0    0
> [3,]    0 0.0000000    0    0
> [4,]    1 0.6666667    0    1
> 
> $U[[21]]
>      [,1] [,2] [,3]      [,4]
> [1,] 0.00    0    0 0.0000000
> [2,] 0.00    0    0 0.1428571
> [3,] 0.25    0    0 0.0000000
> [4,] 0.25    0    0 0.5714286
> 
> $U[[22]]
>      [,1]      [,2] [,3]  [,4]
> [1,] 0.00 0.0000000    0 0.000
> [2,] 0.25 0.0000000    0 0.125
> [3,] 0.00 0.0000000    0 0.000
> [4,] 0.25 0.1666667    0 0.250
> 
> $U[[23]]
>           [,1]      [,2] [,3] [,4]
> [1,] 0.0000000 0.0000000    0    0
> [2,] 0.2857143 0.0000000    0    0
> [3,] 0.2857143 0.3333333    0    0
> [4,] 0.2857143 0.3333333    0    1
> 
> $U[[24]]
>           [,1] [,2]      [,3]  [,4]
> [1,] 0.0000000    0 0.0000000 0.000
> [2,] 0.0000000    0 0.0000000 0.000
> [3,] 0.0000000    0 0.0000000 0.000
> [4,] 0.3333333    0 0.3333333 0.625
> 
> $U[[25]]
>           [,1] [,2] [,3]      [,4]
> [1,] 0.0000000    0    0 0.0000000
> [2,] 0.1666667    0    0 0.0000000
> [3,] 0.0000000    0    0 0.0000000
> [4,] 0.0000000    0    0 0.1666667
> 
> $U[[26]]
>           [,1] [,2] [,3] [,4]
> [1,] 0.0000000  0.0    0    0
> [2,] 0.3333333  0.5    0    0
> [3,] 0.0000000  0.0    0    0
> [4,] 0.3333333  0.0    0    1
> 
> $U[[27]]
>           [,1] [,2] [,3] [,4]
> [1,] 0.0000000 0.00    0  0.0
> [2,] 0.0000000 0.00    0  0.0
> [3,] 0.0000000 0.00    0  0.2
> [4,] 0.1111111 0.75    0  0.2
> 
> 
> $F
> $F[[1]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0 1.74 1.74
> [2,]    0    0 0.00 0.00
> [3,]    0    0 0.00 0.00
> [4,]    0    0 0.00 0.00
> 
> $F[[2]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0  0.3  0.6
> [2,]    0    0  0.0  0.0
> [3,]    0    0  0.0  0.0
> [4,]    0    0  0.0  0.0
> 
> $F[[3]]
>      [,1] [,2]    [,3]  [,4]
> [1,]    0    0 0.50625 0.675
> [2,]    0    0 0.00000 0.000
> [3,]    0    0 0.00000 0.000
> [4,]    0    0 0.00000 0.000
> 
> $F[[4]]
>      [,1] [,2] [,3]     [,4]
> [1,]    0    0 2.44 6.569231
> [2,]    0    0 0.00 0.000000
> [3,]    0    0 0.00 0.000000
> [4,]    0    0 0.00 0.000000
> 
> $F[[5]]
>      [,1] [,2] [,3]      [,4]
> [1,]    0    0 0.45 0.6461538
> [2,]    0    0 0.00 0.0000000
> [3,]    0    0 0.00 0.0000000
> [4,]    0    0 0.00 0.0000000
> 
> $F[[6]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0 2.85 3.99
> [2,]    0    0 0.00 0.00
> [3,]    0    0 0.00 0.00
> [4,]    0    0 0.00 0.00
> 
> $F[[7]]
>      [,1] [,2]  [,3]     [,4]
> [1,]    0    0 1.815 7.058333
> [2,]    0    0 0.000 0.000000
> [3,]    0    0 0.000 0.000000
> [4,]    0    0 0.000 0.000000
> 
> $F[[8]]
>      [,1] [,2]     [,3] [,4]
> [1,]    0    0 1.233333  7.4
> [2,]    0    0 0.000000  0.0
> [3,]    0    0 0.000000  0.0
> [4,]    0    0 0.000000  0.0
> 
> $F[[9]]
>      [,1] [,2] [,3]     [,4]
> [1,]    0    0 1.06 3.372727
> [2,]    0    0 0.00 0.000000
> [3,]    0    0 0.00 0.000000
> [4,]    0    0 0.00 0.000000
> 
> $F[[10]]
>      [,1] [,2]      [,3] [,4]
> [1,]    0    0 0.2454545  2.1
> [2,]    0    0 0.0000000  0.0
> [3,]    0    0 0.0000000  0.0
> [4,]    0    0 0.0000000  0.0
> 
> $F[[11]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0  1.1 1.54
> [2,]    0    0  0.0 0.00
> [3,]    0    0  0.0 0.00
> [4,]    0    0  0.0 0.00
> 
> $F[[12]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0    0  1.5
> [2,]    0    0    0  0.0
> [3,]    0    0    0  0.0
> [4,]    0    0    0  0.0
> 
> $F[[13]]
>      [,1] [,2]     [,3]     [,4]
> [1,]    0    0 1.785366 1.856522
> [2,]    0    0 0.000000 0.000000
> [3,]    0    0 0.000000 0.000000
> [4,]    0    0 0.000000 0.000000
> 
> $F[[14]]
>      [,1] [,2]  [,3]   [,4]
> [1,]    0    0 14.25 16.625
> [2,]    0    0  0.00  0.000
> [3,]    0    0  0.00  0.000
> [4,]    0    0  0.00  0.000
> 
> $F[[15]]
>      [,1] [,2]      [,3]     [,4]
> [1,]    0    0 0.5946429 1.765909
> [2,]    0    0 0.0000000 0.000000
> [3,]    0    0 0.0000000 0.000000
> [4,]    0    0 0.0000000 0.000000
> 
> $F[[16]]
>      [,1] [,2] [,3]     [,4]
> [1,]    0    0 11.5 2.775862
> [2,]    0    0  0.0 0.000000
> [3,]    0    0  0.0 0.000000
> [4,]    0    0  0.0 0.000000
> 
> $F[[17]]
>      [,1] [,2] [,3]  [,4]
> [1,]    0    0 3.78 1.225
> [2,]    0    0 0.00 0.000
> [3,]    0    0 0.00 0.000
> [4,]    0    0 0.00 0.000
> 
> $F[[18]]
>      [,1] [,2]     [,3]     [,4]
> [1,]    0    0 1.542857 1.035616
> [2,]    0    0 0.000000 0.000000
> [3,]    0    0 0.000000 0.000000
> [4,]    0    0 0.000000 0.000000
> 
> $F[[19]]
>      [,1] [,2] [,3]  [,4]
> [1,]    0    0 0.15 0.175
> [2,]    0    0 0.00 0.000
> [3,]    0    0 0.00 0.000
> [4,]    0    0 0.00 0.000
> 
> $F[[20]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0    0 0.25
> [2,]    0    0    0 0.00
> [3,]    0    0    0 0.00
> [4,]    0    0    0 0.00
> 
> $F[[21]]
>      [,1] [,2] [,3]     [,4]
> [1,]    0    0    0 1.428571
> [2,]    0    0    0 0.000000
> [3,]    0    0    0 0.000000
> [4,]    0    0    0 0.000000
> 
> $F[[22]]
>      [,1] [,2] [,3]   [,4]
> [1,]    0    0  0.7 0.6125
> [2,]    0    0  0.0 0.0000
> [3,]    0    0  0.0 0.0000
> [4,]    0    0  0.0 0.0000
> 
> $F[[23]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0    0  0.6
> [2,]    0    0    0  0.0
> [3,]    0    0    0  0.0
> [4,]    0    0    0  0.0
> 
> $F[[24]]
>      [,1] [,2] [,3]   [,4]
> [1,]    0    0  0.7 0.6125
> [2,]    0    0  0.0 0.0000
> [3,]    0    0  0.0 0.0000
> [4,]    0    0  0.0 0.0000
> 
> $F[[25]]
>      [,1] [,2] [,3]      [,4]
> [1,]    0    0  2.1 0.8166667
> [2,]    0    0  0.0 0.0000000
> [3,]    0    0  0.0 0.0000000
> [4,]    0    0  0.0 0.0000000
> 
> $F[[26]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0    0    7
> [2,]    0    0    0    0
> [3,]    0    0    0    0
> [4,]    0    0    0    0
> 
> $F[[27]]
>      [,1] [,2] [,3] [,4]
> [1,]    0    0    0  1.4
> [2,]    0    0    0  0.0
> [3,]    0    0    0  0.0
> [4,]    0    0    0  0.0
> 
> 
> $hstages
> [1] NA
> 
> $agestages
> [1] NA
> 
> $ahstages
>   stage_id stage_id stage original_size original_size_b original_size_c min_age
> 1        1        1   Sdl             1              NA              NA       0
> 2        2        2   Veg             1              NA              NA       0
> 3        3        3 SmFlo             2              NA              NA       0
> 4        4        4  LFlo             3              NA              NA       0
>   max_age repstatus obsstatus propstatus immstatus matstatus entrystage
> 1      NA         0         1          0         1         0          1
> 2      NA         0         1          0         0         1          0
> 3      NA         1         1          0         0         1          0
> 4      NA         1         1          0         0         1          0
>   indataset binhalfwidth_raw sizebin_min sizebin_max sizebin_center
> 1         1              0.5         0.5         1.5              1
> 2         1              0.5         0.5         1.5              1
> 3         1              0.5         1.5         2.5              2
> 4         1              0.5         2.5         3.5              3
>   sizebin_width binhalfwidthb_raw sizebinb_min sizebinb_max sizebinb_center
> 1             1                NA           NA           NA              NA
> 2             1                NA           NA           NA              NA
> 3             1                NA           NA           NA              NA
> 4             1                NA           NA           NA              NA
>   sizebinb_width binhalfwidthc_raw sizebinc_min sizebinc_max sizebinc_center
> 1             NA                NA           NA           NA              NA
> 2             NA                NA           NA           NA              NA
> 3             NA                NA           NA           NA              NA
> 4             NA                NA           NA           NA              NA
>   sizebinc_width group         comments alive almostborn
> 1             NA     0         Seedling     1          0
> 2             NA     0 Vegetative adult     1          0
> 3             NA     0  Small flowering     1          0
> 4             NA     0  Large flowering     1          0
> 
> $labels
>    pop patch year2
> 1    1     1  2003
> 2    1     1  2004
> 3    1     1  2005
> 4    1     2  2003
> 5    1     2  2004
> 6    1     2  2005
> 7    1     3  2003
> 8    1     3  2004
> 9    1     3  2005
> 10   1     4  2003
> 11   1     4  2004
> 12   1     4  2005
> 13   1     5  2003
> 14   1     5  2004
> 15   1     5  2005
> 16   1     6  2003
> 17   1     6  2004
> 18   1     6  2005
> 19   1     7  2003
> 20   1     7  2004
> 21   1     7  2005
> 22   1     8  2003
> 23   1     8  2004
> 24   1     8  2005
> 25   1     9  2003
> 26   1     9  2004
> 27   1     9  2005
> 
> $matrixqc
> [1] 167  48  27
> 
> attr(,"class")
> [1] "lefkoMat"

The resulting object has all of the elements of a standard lefkoMat object except for those elements related to quality control in the demographic dataset and linear modeling. The option UFdecomp was left at its default (UFdecomp = TRUE), and so create_lM() used the stageframe to infer where fecundity values were located in the matrices and created U and F matrices separating those values. The default option for historical is set to FALSE, yielding an NA in place of the hstages element, which would typically list the order of historical stage pairs.

11.3.2 LTRE analysis

Now, we will develop arithmetic mean matrices and assess the deterministic and stochastic population growth rates, \(\lambda\) and \(a\) (figure 11.2).

anth_lmean <- lmean(anthyllis)

lambda2 <- lambda3(anthyllis)
lambda2m <- lambda3(anth_lmean)
set.seed(42)
sl2 <- slambda3(anthyllis) #Stochastic growth rate
sl2$expa <- exp(sl2$a)

plot(lambda ~ year2, data = subset(lambda2, patch == 1), ylim = c(0, 2.5),xlab = "Year",
  ylab = expression(lambda), type = "l", col = "gray", lty= 2, lwd = 2, bty = "n")
lines(lambda ~ year2, data = subset(lambda2, patch == 2), col = "gray", lty= 2, lwd = 2)
lines(lambda ~ year2, data = subset(lambda2, patch == 3), col = "gray", lty= 2, lwd = 2)
lines(lambda ~ year2, data = subset(lambda2, patch == 4), col = "gray", lty= 2, lwd = 2)
lines(lambda ~ year2, data = subset(lambda2, patch == 5), col = "gray", lty= 2, lwd = 2)
lines(lambda ~ year2, data = subset(lambda2, patch == 6), col = "gray", lty= 2, lwd = 2)
lines(lambda ~ year2, data = subset(lambda2, patch == 7), col = "gray", lty= 2, lwd = 2)
lines(lambda ~ year2, data = subset(lambda2, patch == 8), col = "gray", lty= 2, lwd = 2)
lines(lambda ~ year2, data = subset(lambda2, patch == 9), col = "gray", lty= 2, lwd = 2)
abline(a = lambda2m$lambda[1], b = 0, lty = 1, lwd = 4, col = "orangered")
abline(a = sl2$expa[1], b = 0, lty = 1, lwd = 4, col = "darkred")
legend("topleft", c("det annual", "det mean", "stochastic"), lty = c(2, 1, 1),
  col = c("gray", "orangered", "darkred"), lwd = c(2, 4, 4), bty = "n")
Deterministic vs. stochastic lambda

Figure 11.2: Deterministic vs. stochastic lambda

Clearly, these populations exhibit extremely variable growth across the short field study during which they were monitored. Also very clear is that these populations appear to be on the decline, as shown by \(\lambda\) for the overall mean matrix, and \(e\) to the power of the stochastic growth rate \(a = \text{log} \lambda\).

Let’s conduct a one-way, fixed life table response experiment (LTRE) next. This will be a deterministic LTRE, meaning that we will assess the impacts of differences in matrix elements between the core matrices input and the overall arithmetic grand mean matrix on differences in the deterministic growth rate, \(\lambda\). Since it is not appropriate to assess the differences due to time this way, we will conduct this LTRE using the patch-level mean matrices from anth_lmean against the grand mean. Let’s take a look at the labels element to this object first.

anth_lmean$labels
>    pop patch
> 1    1     1
> 2    1     2
> 3    1     3
> 4    1     4
> 5    1     5
> 6    1     6
> 7    1     7
> 8    1     8
> 9    1     9
> 10   1     0

One key problem is that the grand mean is actually included as the last matrix. We do not wish to run an LTRE in which the reference matrix is also a treatment matrix, so we will first delete the grand mean from this object, and use the resulting lefkoMat object in our LTRE. In our ltre3(), we will then use the default settings, which set the reference as the grand mean matrix (which is computed during the LTRE run). We could use a different reference matrix if we wished, and this would be specified by setting the refmats option to an appropriate reference lefkoMat object.

pruned_anth_lmean <- delete_lM(anth_lmean, mat_num = 10)

trialltre_det <- ltre3(pruned_anth_lmean, stochastic = FALSE)
> Warning: Matrices input as mats will also be used in reference matrix
> calculation.
> Using all refmats matrices in reference matrix calculation.
trialltre_det
> $ltre_det
> $ltre_det[[1]]
>             [,1]          [,2]          [,3]         [,4]
> [1,]  0.00000000  0.0000000000 -0.0526643830 -0.278604545
> [2,]  0.01288781 -0.0002075509 -0.0011802734 -0.002247916
> [3,]  0.02099388  0.0095296944 -0.0007380232 -0.001431440
> [4,] -0.02838087 -0.0062826320  0.0199742696 -0.036219658
> 
> $ltre_det[[2]]
>              [,1]          [,2]         [,3]         [,4]
> [1,]  0.000000000  0.0000000000 0.0010320913  0.113969244
> [2,] -0.008180535 -0.0010477967 0.0004334319 -0.005568240
> [3,] -0.016462320  0.0100496346 0.0009236077 -0.003737373
> [4,] -0.045108893  0.0008961807 0.0039524441 -0.081432730
> 
> $ltre_det[[3]]
>              [,1]          [,2]         [,3]         [,4]
> [1,]  0.000000000  0.0000000000 -0.024063752  0.275500504
> [2,] -0.005037786 -0.0025268625  0.001872599  0.002568217
> [3,]  0.023776228  0.0066160079  0.005270105  0.022131728
> [4,] -0.315031272  0.0001712855  0.004413070 -0.065764758
> 
> $ltre_det[[4]]
>               [,1]         [,2]          [,3]         [,4]
> [1,]  0.0000000000  0.000000000 -5.028329e-02 -0.169540748
> [2,] -0.0269687794 -0.001420158 -3.137497e-04 -0.005202208
> [3,]  0.0001492085 -0.004256203  8.430731e-05 -0.008839788
> [4,]  0.0311640114 -0.003928060 -2.974225e-03 -0.017954340
> 
> $ltre_det[[5]]
>             [,1]        [,2]         [,3]         [,4]
> [1,]  0.00000000  0.00000000  0.112678253  0.300395132
> [2,] -0.01743882 -0.00131768 -0.000567669  0.002407567
> [3,] -0.01091381 -0.01241459 -0.001846088 -0.006955586
> [4,] -0.46041272 -0.03371817 -0.007443071 -0.083077750
> 
> $ltre_det[[6]]
>              [,1]       [,2]         [,3]         [,4]
> [1,]  0.000000000 0.00000000  0.145611873 -0.132570128
> [2,]  0.085120191 0.01611388  0.004397356  0.014357161
> [3,]  0.002147524 0.01287140  0.005025013  0.002326089
> [4,] -0.114627718 0.03934714 -0.006712288 -0.012485180
> 
> $ltre_det[[7]]
>              [,1]          [,2]          [,3]          [,4]
> [1,]  0.000000000  0.0000000000 -0.0565636772 -0.5554555750
> [2,] -0.022442169 -0.0007237743 -0.0003715165 -0.0001003139
> [3,]  0.003947167 -0.0021924335 -0.0007702247 -0.0090681614
> [4,]  0.444644607  0.0019804891 -0.0038457456  0.1207791604
> 
> $ltre_det[[8]]
>             [,1]         [,2]          [,3]          [,4]
> [1,] 0.000000000  0.000000000 -0.0524795118 -0.3990970676
> [2,] 0.009959864 -0.002144705 -0.0007147407 -0.0008570809
> [3,] 0.011313284  0.003107712 -0.0014907816 -0.0104568792
> [4,] 0.055374257 -0.005505580  0.0063263888  0.1766385565
> 
> $ltre_det[[9]]
>             [,1]         [,2]          [,3]         [,4]
> [1,]  0.00000000  0.000000000 -0.0245397016  0.034433102
> [2,]  0.01213148  0.007593275 -0.0006363292 -0.006457662
> [3,] -0.03527604 -0.006195371 -0.0008050954  0.004342704
> [4,] -0.14291846  0.014609995 -0.0051357739  0.078041234
> 
> 
> $ahstages
>   stage_id stage_id stage original_size original_size_b original_size_c min_age
> 1        1        1   Sdl             1              NA              NA       0
> 2        2        2   Veg             1              NA              NA       0
> 3        3        3 SmFlo             2              NA              NA       0
> 4        4        4  LFlo             3              NA              NA       0
>   max_age repstatus obsstatus propstatus immstatus matstatus entrystage
> 1      NA         0         1          0         1         0          1
> 2      NA         0         1          0         0         1          0
> 3      NA         1         1          0         0         1          0
> 4      NA         1         1          0         0         1          0
>   indataset binhalfwidth_raw sizebin_min sizebin_max sizebin_center
> 1         1              0.5         0.5         1.5              1
> 2         1              0.5         0.5         1.5              1
> 3         1              0.5         1.5         2.5              2
> 4         1              0.5         2.5         3.5              3
>   sizebin_width binhalfwidthb_raw sizebinb_min sizebinb_max sizebinb_center
> 1             1                NA           NA           NA              NA
> 2             1                NA           NA           NA              NA
> 3             1                NA           NA           NA              NA
> 4             1                NA           NA           NA              NA
>   sizebinb_width binhalfwidthc_raw sizebinc_min sizebinc_max sizebinc_center
> 1             NA                NA           NA           NA              NA
> 2             NA                NA           NA           NA              NA
> 3             NA                NA           NA           NA              NA
> 4             NA                NA           NA           NA              NA
>   sizebinc_width group         comments alive almostborn
> 1             NA     0         Seedling     1          0
> 2             NA     0 Vegetative adult     1          0
> 3             NA     0  Small flowering     1          0
> 4             NA     0  Large flowering     1          0
> 
> $agestages
>   NA
> 1 NA
> 
> $hstages
> [1] NA
> 
> $labels
>   pop patch
> 1   1     1
> 2   1     2
> 3   1     3
> 4   1     4
> 5   1     5
> 6   1     6
> 7   1     7
> 8   1     8
> 9   1     9
> 
> attr(,"class")
> [1] "lefkoLTRE"

The resulting lefkoLTRE object gives the LTRE contributions for each patch-level mean matrix relative to the arithmetic grand mean matrix. These are provided within the top list, ltre_det. These differences in LTRE contributions are essentially across space, and so are of interest if we wished to analyze these patterns geographically. They do not provide us with any understanding of how time affects population dynamics, though. To assess the contributions across space while accounting for temporal shifts, we should conduct a stochastic LTRE (sLTRE) on the original lefkoMat object holding the annual matrices, as below.

trialltre_sto <- ltre3(anthyllis, stochastic = TRUE, steps = 10000)
> Warning: Matrices input as mats will also be used in reference matrix
> calculation.
> Using all refmats matrices in reference matrix calculation.

trialltre_sto
> $ltre_mean
> $ltre_mean[[1]]
>             [,1]          [,2]          [,3]         [,4]
> [1,]  0.00000000  0.0000000000 -0.0515416500 -0.370937927
> [2,]  0.01070788 -0.0001500566  0.0027370245 -0.002244957
> [3,]  0.01794720  0.0050753795 -0.0006037437 -0.001323003
> [4,] -0.03534884 -0.0058807825  0.0082570892 -0.041726820
> 
> $ltre_mean[[2]]
>              [,1]          [,2]         [,3]         [,4]
> [1,]  0.000000000  0.0000000000 0.0010311785  0.105734697
> [2,] -0.006706474 -0.0011291073 0.0002973553  0.015093977
> [3,] -0.016296606  0.0062287141 0.0007220703 -0.004735088
> [4,] -0.040182417  0.0008234334 0.0029362458 -0.119265460
> 
> $ltre_mean[[3]]
>              [,1]          [,2]          [,3]         [,4]
> [1,]  0.000000000  0.0000000000 -0.0205998976  0.274410792
> [2,] -0.003575952 -0.0039255244  0.0006365332  0.002196989
> [3,]  0.019246411  0.0049124671  0.0021713301  0.015124290
> [4,] -0.322969218  0.0001159174  0.0019163175 -0.090300975
> 
> $ltre_mean[[4]]
>               [,1]         [,2]          [,3]        [,4]
> [1,]  0.0000000000  0.000000000 -0.0927991820 -0.17724231
> [2,] -0.0527720512  0.006444722 -0.0004792117  0.01509398
> [3,]  0.0001969125  0.020276759  0.0001129494  0.03298972
> [4,]  0.0297566408 -0.005922822 -0.0041380947 -0.01671769
> 
> $ltre_mean[[5]]
>              [,1]         [,2]         [,3]         [,4]
> [1,]  0.000000000  0.000000000  0.069832537  0.320555419
> [2,] -0.018234327 -0.002134846 -0.001196445  0.002908661
> [3,] -0.005442887 -0.019611843 -0.001674146 -0.010152429
> [4,] -0.542378808 -0.036550729 -0.010466781 -0.145342677
> 
> $ltre_mean[[6]]
>              [,1]        [,2]        [,3]         [,4]
> [1,]  0.000000000 0.000000000 0.070578256 -0.184629877
> [2,]  0.036912112 0.002816890 0.001152807  0.005769269
> [3,]  0.001139878 0.002900943 0.001527744  0.001264277
> [4,] -0.174040744 0.018089665 0.019546035 -0.016579987
> 
> $ltre_mean[[7]]
>             [,1]        [,2]         [,3]          [,4]
> [1,] 0.000000000 0.000000000 -0.234693467 -5.475797e-01
> [2,] 0.081113729 0.006444722  0.002737024 -9.570216e-05
> [3,] 0.007907095 0.020276759  0.006800878  3.298972e-02
> [4,] 0.364304221 0.004721979  0.019546035  7.426682e-02
> 
> $ltre_mean[[8]]
>            [,1]         [,2]         [,3]          [,4]
> [1,] 0.00000000  0.000000000 -0.090228851 -0.5532201480
> [2,] 0.01113030  0.006444722  0.002737024 -0.0007619147
> [3,] 0.01492979  0.003049720  0.006800878  0.0329897193
> [4,] 0.06332534 -0.005922822  0.004662797  0.0996015753
> 
> $ltre_mean[[9]]
>              [,1]        [,2]         [,3]        [,4]
> [1,]  0.000000000 0.000000000 -0.064004117 0.034792319
> [2,]  0.008327628 0.002563569  0.002737024 0.015093977
> [3,]  0.138593529 0.020276759  0.006800878 0.005104104
> [4,] -0.148837915 0.009080183  0.019546035 0.054241194
> 
> 
> $ltre_sd
> $ltre_sd[[1]]
>              [,1]          [,2]          [,3]          [,4]
> [1,]  0.000000000  0.0000000000  4.341465e-05  1.444178e-02
> [2,] -0.003010341 -0.0004058814 -2.170342e-05 -9.406901e-05
> [3,] -0.001621032 -0.0006121729 -3.407827e-06  6.567504e-04
> [4,] -0.001053766 -0.0004012703 -7.862604e-04 -1.033674e-02
> 
> $ltre_sd[[2]]
>               [,1]          [,2]          [,3]          [,4]
> [1,]  0.0000000000  0.0000000000 -1.596780e-03 -0.0239115495
> [2,] -0.0004905186 -0.0002492083 -8.299986e-06 -0.0010298911
> [3,] -0.0018028068 -0.0009880104 -5.610904e-06  0.0004884797
> [4,] -0.0035016738 -0.0015864265 -3.774296e-04  0.0059529679
> 
> $ltre_sd[[3]]
>              [,1]          [,2]          [,3]          [,4]
> [1,]  0.000000000  0.0000000000  2.266390e-03 -0.0168040116
> [2,] -0.001079108  0.0001982900 -5.617669e-06 -0.0003214441
> [3,] -0.001556828 -0.0006586355 -6.089133e-06  0.0006725685
> [4,]  0.005386563 -0.0011057609 -4.178761e-04  0.0040784192
> 
> $ltre_sd[[4]]
>              [,1]         [,2]          [,3]         [,4]
> [1,]  0.000000000  0.000000000  1.024606e-03  0.030452987
> [2,] -0.000184387 -0.001341081 -3.511349e-06 -0.001029891
> [3,] -0.001796225 -0.001624119 -4.598741e-06  0.002172922
> [4,] -0.004816828 -0.001700976 -2.656661e-04 -0.007631882
> 
> $ltre_sd[[5]]
>               [,1]          [,2]          [,3]          [,4]
> [1,]  0.0000000000  0.000000e+00 -7.415741e-03 -0.0502816561
> [2,] -0.0006601785 -8.826444e-05  9.114098e-07 -0.0004906439
> [3,] -0.0019427981  4.626741e-04 -1.629161e-06  0.0002213177
> [4,]  0.0036341603 -4.393153e-04  3.031228e-05  0.0014174990
> 
> $ltre_sd[[6]]
>               [,1]          [,2]          [,3]          [,4]
> [1,]  0.000000e+00  0.0000000000 -6.201560e-03  0.0043775763
> [2,] -4.188862e-03 -0.0004411867 -1.263380e-05 -0.0003886135
> [3,] -7.075819e-05 -0.0003769136 -6.949676e-06  0.0004593446
> [4,]  6.420704e-03 -0.0004970918 -1.263529e-03  0.0043230323
> 
> $ltre_sd[[7]]
>              [,1]         [,2]          [,3]          [,4]
> [1,]  0.000000000  0.000000000  7.249354e-03  0.0120052442
> [2,] -0.009108353 -0.001341081 -2.170342e-05 -0.0003562106
> [3,] -0.003549866 -0.001624119 -1.461039e-05  0.0021729219
> [4,] -0.007552384 -0.002078990 -1.263529e-03 -0.0158510883
> 
> $ltre_sd[[8]]
>              [,1]          [,2]          [,3]          [,4]
> [1,]  0.000000000  0.0000000000  2.195242e-03  0.1261593113
> [2,] -0.002866923 -0.0013410807 -2.170342e-05 -0.0003228677
> [3,] -0.003841230 -0.0008095423 -1.461039e-05  0.0021729219
> [4,]  0.003827163 -0.0009791899 -6.772639e-04 -0.0123243411
> 
> $ltre_sd[[9]]
>              [,1]          [,2]          [,3]          [,4]
> [1,]  0.000000000  0.0000000000 -1.409241e-03 -0.0273871408
> [2,] -0.003073362 -0.0008401309 -2.170342e-05 -0.0010298911
> [3,] -0.008215696 -0.0016241186 -1.461039e-05  0.0009737102
> [4,] -0.002993180 -0.0022337562 -1.263529e-03 -0.0151065503
> 
> 
> $ahstages
>   stage_id stage_id stage original_size original_size_b original_size_c min_age
> 1        1        1   Sdl             1              NA              NA       0
> 2        2        2   Veg             1              NA              NA       0
> 3        3        3 SmFlo             2              NA              NA       0
> 4        4        4  LFlo             3              NA              NA       0
>   max_age repstatus obsstatus propstatus immstatus matstatus entrystage
> 1      NA         0         1          0         1         0          1
> 2      NA         0         1          0         0         1          0
> 3      NA         1         1          0         0         1          0
> 4      NA         1         1          0         0         1          0
>   indataset binhalfwidth_raw sizebin_min sizebin_max sizebin_center
> 1         1              0.5         0.5         1.5              1
> 2         1              0.5         0.5         1.5              1
> 3         1              0.5         1.5         2.5              2
> 4         1              0.5         2.5         3.5              3
>   sizebin_width binhalfwidthb_raw sizebinb_min sizebinb_max sizebinb_center
> 1             1                NA           NA           NA              NA
> 2             1                NA           NA           NA              NA
> 3             1                NA           NA           NA              NA
> 4             1                NA           NA           NA              NA
>   sizebinb_width binhalfwidthc_raw sizebinc_min sizebinc_max sizebinc_center
> 1             NA                NA           NA           NA              NA
> 2             NA                NA           NA           NA              NA
> 3             NA                NA           NA           NA              NA
> 4             NA                NA           NA           NA              NA
>   sizebinc_width group         comments alive almostborn
> 1             NA     0         Seedling     1          0
> 2             NA     0 Vegetative adult     1          0
> 3             NA     0  Small flowering     1          0
> 4             NA     0  Large flowering     1          0
> 
> $agestages
> [1] NA
> 
> $hstages
> [1] NA
> 
> $labels
>   pop patch
> 1   1     1
> 2   1     2
> 3   1     3
> 4   1     4
> 5   1     5
> 6   1     6
> 7   1     7
> 8   1     8
> 9   1     9
> 
> attr(,"class")
> [1] "lefkoLTRE"

The sLTRE produces output that is a bit different from the deterministic LTRE output. In the output, we see two lists of matrices prior to the MPM metadata. The first, ltre_mean, is a list of matrices showing the impact of differences in mean elements between the patch-level temporal mean matrices and the reference temporal mean matrix. The second, ltre_sd, is a list of matrices showing the impact of differences in the temporal standard deviation of each element between the patch-level and reference matrix sets. In other words, while a standard LTRE shows the impact of changes in matrix elements on \(\lambda\), the sLTRE shows the impacts of changes in the temporal mean and variability of matrix elements on \(\text{log} \lambda\). The labels element shows the order of matrices with reference to the populations or patches (remember that here, the populations are referred to as patches), and the order is the same as in pruned_anth_lmean.

11.3.2.1 Interpreting LTRE contributions

lefkoLTRE objects are large and can take a great deal of effort to look over and understand. Therefore, we will show three approaches to assessing these objects, using an approach similar to that used to assess elasticities. These methods can be used to assess patterns in all nine populations, but for brevity we will focus only on the first population here. First, we will identify the elements most strongly impacting the population growth rate in each case. These are the elements with the highest absolute value in the contribution matrices. Because we are interested in their signs, we will look for the minimum and maximum values. We can do this for each patch, but here we do this for just the first patch (population C).

cpatch <- 1

writeLines(paste0("Highest (i.e most positive) deterministic LTRE contribution: ",
  max(trialltre_det$ltre_det[[cpatch]])))
> Highest (i.e most positive) deterministic LTRE contribution: 0.020993880824138
writeLines(paste0("Highest deterministic LTRE contribution is associated with element: ",
  which(trialltre_det$ltre_det[[cpatch]] == max(trialltre_det$ltre_det[[cpatch]]))))
> Highest deterministic LTRE contribution is associated with element: 3
writeLines(paste0("Lowest (i.e. most negative) deterministic LTRE contribution: ",
  min(trialltre_det$ltre_det[[cpatch]])))
> Lowest (i.e. most negative) deterministic LTRE contribution: -0.278604545412243
writeLines(paste0("Lowest deterministic LTRE contribution is associated with element: ",
  which(trialltre_det$ltre_det[[cpatch]] == min(trialltre_det$ltre_det[[cpatch]]))))
> Lowest deterministic LTRE contribution is associated with element: 13

writeLines(paste0("\nHighest stochastic mean LTRE contribution: ",
  max(trialltre_sto$ltre_mean[[cpatch]])))
> 
> Highest stochastic mean LTRE contribution: 0.0179472041741181
writeLines(paste0("Highest stochastic mean LTRE contribution is associated with element: ",
  which(trialltre_sto$ltre_mean[[cpatch]] == max(trialltre_sto$ltre_mean[[cpatch]]))))
> Highest stochastic mean LTRE contribution is associated with element: 3
writeLines(paste0("Lowest stochastic mean LTRE contribution: ",
  min(trialltre_sto$ltre_mean[[cpatch]])))
> Lowest stochastic mean LTRE contribution: -0.370937926897558
writeLines(paste0("Lowest stochastic mean LTRE contribution is associated with element: ",
  which(trialltre_sto$ltre_mean[[cpatch]] == min(trialltre_sto$ltre_mean[[cpatch]]))))
> Lowest stochastic mean LTRE contribution is associated with element: 13

writeLines(paste0("\nHighest stochastic SD LTRE contribution: ",
  max(trialltre_sto$ltre_sd[[cpatch]])))
> 
> Highest stochastic SD LTRE contribution: 0.014441782311314
writeLines(paste0("Highest stochastic SD LTRE contribution is associated with element: ",
  which(trialltre_sto$ltre_sd[[cpatch]] == max(trialltre_sto$ltre_sd[[cpatch]]))))
> Highest stochastic SD LTRE contribution is associated with element: 13
writeLines(paste0("Lowest stochastic SD LTRE contribution: ",
  min(trialltre_sto$ltre_sd[[cpatch]])))
> Lowest stochastic SD LTRE contribution: -0.0103367392514045
writeLines(paste0("Lowest stochastic SD LTRE contribution is associated with element: ",
  which(trialltre_sto$ltre_sd[[cpatch]] == min(trialltre_sto$ltre_sd[[cpatch]]))))
> Lowest stochastic SD LTRE contribution is associated with element: 16

writeLines(paste0("\nTotal positive deterministic LTRE contributions: ",
  sum(trialltre_det$ltre_det[[cpatch]][which(trialltre_det$ltre_det[[cpatch]] > 0)])))
> 
> Total positive deterministic LTRE contributions: 0.0633856585971785
writeLines(paste0("Total negative deterministic LTRE contributions: ",
  sum(trialltre_det$ltre_det[[cpatch]][which(trialltre_det$ltre_det[[cpatch]] < 0)])))
> Total negative deterministic LTRE contributions: -0.407957287954865
writeLines(paste0("Total positive stochastic mean LTRE contributions: ",
  sum(trialltre_sto$ltre_mean[[cpatch]][which(trialltre_sto$ltre_mean[[cpatch]] > 0)])))
> Total positive stochastic mean LTRE contributions: 0.0447245785886143
writeLines(paste0("Total negative stochastic mean LTRE contributions: ",
  sum(trialltre_sto$ltre_mean[[cpatch]][which(trialltre_sto$ltre_mean[[cpatch]] < 0)])))
> Total negative stochastic mean LTRE contributions: -0.509757776771075
writeLines(paste0("Total positive stochastic SD LTRE contributions: ",
  sum(trialltre_sto$ltre_sd[[cpatch]][which(trialltre_sto$ltre_sd[[cpatch]] > 0)])))
> Total positive stochastic SD LTRE contributions: 0.0151419474124082
writeLines(paste0("Total negative stochastic SD LTRE contributions: ",
  sum(trialltre_sto$ltre_sd[[cpatch]][which(trialltre_sto$ltre_sd[[cpatch]] < 0)])))
> Total negative stochastic SD LTRE contributions: -0.018346643772654

The output for the deterministic LTRE shows that element 3, which is the growth transition from seedling to small flowering adult (column 1, row 3), has the most positive influence. The strongest influence, however, is negative, and is associated with element 13 (column 4, row 1), which is the fecundity transition of large flowering adults. The same pattern holds for the stochastic LTRE, where we see the strongest influence of shifts in the mean value of element 13, and this influence is negative. The strongest positive contribution is associated with the mean value of element 3. Variability in elements also contributes to shifts in \(\text{log} \lambda\), though less so than shifts in mean elements. The strongest positive contribution is from variation in element 13, the fecundity transition from large flowering adult to seedling (column 4, row 1), while the most negative contribution is from stasis as a large flowering adult (row and column 4). A comparison of summed LTRE elements shows that negative contributions of mean elements were most influential in the stochastic case and that this pattern matched that seen in the deterministic LTRE, while variability of elements had little overall influence.

Let’s also take a look at the next patch.

cpatch <- 2

writeLines(paste0("Highest (i.e most positive) deterministic LTRE contribution: ",
  max(trialltre_det$ltre_det[[cpatch]])))
> Highest (i.e most positive) deterministic LTRE contribution: 0.113969243890077
writeLines(paste0("Highest deterministic LTRE contribution is associated with element: ",
  which(trialltre_det$ltre_det[[cpatch]] == max(trialltre_det$ltre_det[[cpatch]]))))
> Highest deterministic LTRE contribution is associated with element: 13
writeLines(paste0("Lowest (i.e. most negative) deterministic LTRE contribution: ",
  min(trialltre_det$ltre_det[[cpatch]])))
> Lowest (i.e. most negative) deterministic LTRE contribution: -0.0814327296358497
writeLines(paste0("Lowest deterministic LTRE contribution is associated with element: ",
  which(trialltre_det$ltre_det[[cpatch]] == min(trialltre_det$ltre_det[[cpatch]]))))
> Lowest deterministic LTRE contribution is associated with element: 16

writeLines(paste0("\nHighest stochastic mean LTRE contribution: ",
  max(trialltre_sto$ltre_mean[[cpatch]])))
> 
> Highest stochastic mean LTRE contribution: 0.105734697094156
writeLines(paste0("Highest stochastic mean LTRE contribution is associated with element: ",
  which(trialltre_sto$ltre_mean[[cpatch]] == max(trialltre_sto$ltre_mean[[cpatch]]))))
> Highest stochastic mean LTRE contribution is associated with element: 13
writeLines(paste0("Lowest stochastic mean LTRE contribution: ",
  min(trialltre_sto$ltre_mean[[cpatch]])))
> Lowest stochastic mean LTRE contribution: -0.119265460372299
writeLines(paste0("Lowest stochastic mean LTRE contribution is associated with element: ",
  which(trialltre_sto$ltre_mean[[cpatch]] == min(trialltre_sto$ltre_mean[[cpatch]]))))
> Lowest stochastic mean LTRE contribution is associated with element: 16

writeLines(paste0("\nHighest stochastic SD LTRE contribution: ",
  max(trialltre_sto$ltre_sd[[cpatch]])))
> 
> Highest stochastic SD LTRE contribution: 0.00595296787416105
writeLines(paste0("Highest stochastic SD LTRE contribution is associated with element: ",
  which(trialltre_sto$ltre_sd[[cpatch]] == max(trialltre_sto$ltre_sd[[cpatch]]))))
> Highest stochastic SD LTRE contribution is associated with element: 16
writeLines(paste0("Lowest stochastic SD LTRE contribution: ",
  min(trialltre_sto$ltre_sd[[cpatch]])))
> Lowest stochastic SD LTRE contribution: -0.0239115495083192
writeLines(paste0("Lowest stochastic SD LTRE contribution is associated with element: ",
  which(trialltre_sto$ltre_sd[[cpatch]] == min(trialltre_sto$ltre_sd[[cpatch]]))))
> Lowest stochastic SD LTRE contribution is associated with element: 13

writeLines(paste0("\nTotal positive deterministic LTRE contributions: ",
  sum(trialltre_det$ltre_det[[cpatch]][which(trialltre_det$ltre_det[[cpatch]] > 0)])))
> 
> Total positive deterministic LTRE contributions: 0.131256634282739
writeLines(paste0("Total negative deterministic LTRE contributions: ",
  sum(trialltre_det$ltre_det[[cpatch]][which(trialltre_det$ltre_det[[cpatch]] < 0)])))
> Total negative deterministic LTRE contributions: -0.161537887690423
writeLines(paste0("Total positive stochastic mean LTRE contributions: ",
  sum(trialltre_sto$ltre_mean[[cpatch]][which(trialltre_sto$ltre_mean[[cpatch]] > 0)])))
> Total positive stochastic mean LTRE contributions: 0.132867671904518
writeLines(paste0("Total negative stochastic mean LTRE contributions: ",
  sum(trialltre_sto$ltre_mean[[cpatch]][which(trialltre_sto$ltre_mean[[cpatch]] < 0)])))
> Total negative stochastic mean LTRE contributions: -0.188315152172092
writeLines(paste0("Total positive stochastic SD LTRE contributions: ",
  sum(trialltre_sto$ltre_sd[[cpatch]][which(trialltre_sto$ltre_sd[[cpatch]] > 0)])))
> Total positive stochastic SD LTRE contributions: 0.00644144760946174
writeLines(paste0("Total negative stochastic SD LTRE contributions: ",
  sum(trialltre_sto$ltre_sd[[cpatch]][which(trialltre_sto$ltre_sd[[cpatch]] < 0)])))
> Total negative stochastic SD LTRE contributions: -0.0355482058012367

We see some similarities and some differences. Particularly, element 3 is no longer among the most influential elements. However, elements 13 and 16 are strongly influential, suggesting a strong role to the fecundity of large adults and stasis within the large adult stage.

Second, we will identify which stages exerted the strongest impact on the population growth rate. Let’s focus on the first patch again.

cpatch <- 1

ltre_pos <- trialltre_det$ltre_det[[cpatch]]
ltre_neg <- trialltre_det$ltre_det[[cpatch]]
ltre_pos[which(ltre_pos < 0)] <- 0
ltre_neg[which(ltre_neg > 0)] <- 0

sltre_meanpos <- trialltre_sto$ltre_mean[[cpatch]]
sltre_meanneg <- trialltre_sto$ltre_mean[[cpatch]]
sltre_meanpos[which(sltre_meanpos < 0)] <- 0
sltre_meanneg[which(sltre_meanneg > 0)] <- 0

sltre_sdpos <- trialltre_sto$ltre_sd[[cpatch]]
sltre_sdneg <- trialltre_sto$ltre_sd[[cpatch]]
sltre_sdpos[which(sltre_sdpos < 0)] <- 0
sltre_sdneg[which(sltre_sdneg > 0)] <- 0

ltresums_pos <- cbind(colSums(ltre_pos), colSums(sltre_meanpos), colSums(sltre_sdpos))
ltresums_neg <- cbind(colSums(ltre_neg), colSums(sltre_meanneg), colSums(sltre_sdneg))

ltre_as_names <- trialltre_det$ahstages$stage

barplot(t(ltresums_pos), beside = T, col = c("black", "grey", "red"),
  ylim = c(-0.50, 0.10))
barplot(t(ltresums_neg), beside = T, col = c("black", "grey", "red"), add = TRUE)
abline(0, 0, lty= 3)
text(cex=1, y = -0.57, x = seq(from = 2, to = 3.98*length(ltre_as_names),
    by = 4), ltre_as_names, xpd=TRUE, srt=45)
legend("bottomleft", c("deterministic", "stochastic mean", "stochastic SD"),
  col = c("black", "grey", "red"), pch = 15, bty = "n")
LTRE contributions by stage

Figure 11.3: LTRE contributions by stage

The output above shows that large flowering adults exerted the strongest influence on both \(\lambda\) and \(\text{log} \lambda\), with the latter influence being through the impact of shifts in the mean. This impact is overwhelmingly negative. The next largest impact comes from seedlings in the deterministic case, and from small flowering adults in the stochastic case, in both cases the influence being negative on the whole.

Finally, we will assess what transition types exert the greatest impact on population growth rate.

det_ltre_summary <- summary(trialltre_det)
sto_ltre_summary <- summary(trialltre_sto)

ltresums_tpos <- cbind(det_ltre_summary$ahist_det$matrix1_pos,
  sto_ltre_summary$ahist_mean$matrix1_pos,
  sto_ltre_summary$ahist_sd$matrix1_pos)
ltresums_tneg <- cbind(det_ltre_summary$ahist_det$matrix1_neg,
  sto_ltre_summary$ahist_mean$matrix1_neg,
  sto_ltre_summary$ahist_sd$matrix1_neg)

barplot(t(ltresums_tpos), beside = T, col = c("black", "grey", "red"),
  ylim = c(-0.55, 0.10))
barplot(t(ltresums_tneg), beside = T, col = c("black", "grey", "red"),
  add = TRUE)
abline(0, 0, lty = 3)
text(cex=0.85, y = -0.64, x = seq(from = 2, to = 3.98*length(det_ltre_summary$ahist_det$category),
    by = 4), det_ltre_summary$ahist_det$category, xpd=TRUE, srt=45)
legend("bottomleft", c("deterministic", "stochastic mean", "stochastic SD"),
  col = c("black", "grey", "red"), pch = 15, bty = "n")
LTRE contributions by transition type

Figure 11.4: LTRE contributions by transition type

The overall greatest impact on the population growth rate is from fecundity transitions, which have generally had a negative impact. Clearly temporal variation has strong effects here that deserve to be assessed properly. Note that these impacts are relative to the grand mean.

LTREs and sLTREs are powerful tools, and more complex versions of both analyses exist. Please consult Caswell (2001) and Davison et al. (2013) for more information.

11.4 Points to remember

  1. Life table response experiments (LTREs) allow the demographic impacts of specific factors to be tested, provided that the factors yield matrices that can be compared against some control. These analyses generally show the impacts of such factors on the deterministic or stochastic population growth growth rate via contributions from shifts in matrix elements.
  2. Stochastic life table response experiments (sLTREs) assess the impacts of factors on the stochastic population growth rate via shifts in both the temporal mean and the temporal standard deviation in matrix elements.
  3. LTRE contributions may be summed within matrices to assess the impacts of specific stages or transitions as they respond to some treatment.

References

Caswell, H. (1989). Analysis of life table response experiments i. Decomposition of effects on population growth rate. Ecological Modelling, 46, 221–237.
Caswell, H. (2001). Matrix population models: Construction, analysis, and interpretation. Second edition. Sinauer Associates, Inc., Sunderland, Massachusetts, USA.
Caswell, H. (2010). Life table response experiment analysis of the stochastic growth rate. Journal of Ecology, 98, 324–333.
Davison, R., Jacquemyn, H., Adriaens, D., Honnay, O., Kroon, H. de & Tuljapurkar, S. (2010). Demographic effects of extreme weather events on a short-lived calcareous grassland species: Stochastic life table response experiments. Journal of Ecology, 98, 255–267.
Davison, R., Nicole, F., Jacquemyn, H. & Tuljapurkar, S. (2013). Contributions of covariance: Decomposing the components of stochastic population growth in Cypripedium calceolus. The American Naturalist, 181, 410–420.
Davison, R., Stadman, M. & Jongejans, E. (2019). Stochastic effects contribute to population fitness differences. Ecological Modelling, 408, 108760.
Greenwood, M. (1938). The first life table. Notes and Records of the Royal Society of London, 1, 70–72.