0

This has been rattling around my head for a while.

From Broderick et al. 2006 (http://www.ascension-island.gov.ac/wp-content/uploads/2012/12/are-green-turtles-globally-endangered.pdf), they created a transition matrix (Table 1) for the probability of a turtle surviving and growing to the next age-class and the probability of a turtle surviving and growing to the ith age-class.

Could anyone show me how to create this sort of matrix in R?

Table 1.

[Age-class                  S1 S2 S3 S4 S5 S6
Structure S1 (egg-neonate) P1 F2 F3 F4 F5 F6
S2 (pelagic individual)    G1 P2 0 0 0 0
S3 (benthic individual)    0 G2 P3 0 0 0
S4 (sub-adult)             0 0 G3 P4 0 0
S5 (maturing adult)        0 0 0 G4 P5 0
S6 (adult)                 0 0 0 0 G5 P6
Values S1   0 0 0 F4 F5 F6
S2          0.4394 0.5704 0 0 0 0
S3          0 0.0741 0.8413 0 0 0
S4          0 0 0.0391 0.8405 0 0
S5          0 0 0 0.0069 0.7782 0
S6          0 0 0 0.1700 0.9482]

Also, using this matrix you can calculate the proportion of hatchlings that survive to adulthood.

Ben Bolker
  • 211,554
  • 25
  • 370
  • 453
Constantin
  • 132
  • 9
  • 2
    Anything you tried in solving this yourself? Why did it not work? Please consider formatting your data. – Heroka Feb 27 '16 at 13:07
  • note that you also have to specify the fecundities: "Note that [F4, F5, F6] = [0.3299, 53.4639,90.6716] and [0.2474, 40.0980, 68.0037] for [mean renesting iterval] = 3 and 4, respectively. – Ben Bolker Feb 27 '16 at 13:36
  • I haven't done anything yet, I was just querying before I attempted anything. – Constantin Feb 27 '16 at 14:29

1 Answers1

1

You have a couple of potential problems or barriers to surmount. Since R uses column major indexing, you need to use the byrow parameter for the matrix call. You are also missing a 0 (as was the original article as well) in the last row of the values. I don't see any point in creating the upper matrix using character values, so will instead demonstrate a couple of data input methods. Using scan to bring data in allows one to import text from the command line without retyping everything. The default mode for input with scan is "numeric" so you do not need to include a what argument:

valsRMI3 = c(0.3299, 53.4639, + 90.6716)
valsRMI4 <-c(0.2474, 40.0980, 68.0037)  # copied from the PDF file

mvals <- scan(text="0.4394 0.5704 0 0 0 0
 0 0.0741 0.8413 0 0 0
 0 0 0.0391 0.8405 0 0
 0 0 0 0.0069 0.7782 0
 0 0 0 0 0.1700 0.9482")  # added the extra 0 after noting incorrect number of input values

To make a matrix with row and column labels (useful for indexing) for the case of RMI=3:

matrix( c( 0,0,0,valsRMI3,  # the first row
           mvals),          # rest of matrix values
        nrow=6, 
        byrow=TRUE, 
        dimnames=list( paste0("S", 1:6), paste0("S", 1:6))  )

#--------------
       S1     S2     S3     S4      S5      S6
S1 0.0000 0.0000 0.0000 0.3299 53.4639 90.6716
S2 0.4394 0.5704 0.0000 0.0000  0.0000  0.0000
S3 0.0000 0.0741 0.8413 0.0000  0.0000  0.0000
S4 0.0000 0.0000 0.0391 0.8405  0.0000  0.0000
S5 0.0000 0.0000 0.0000 0.0069  0.7782  0.0000
S6 0.0000 0.0000 0.0000 0.0000  0.1700  0.9482

There is matrix-exponential function that is available within the Matrix and expm packages and matrix-power in expm which may be needed for assessment of Markov modeling predictions.

IRTFM
  • 258,963
  • 21
  • 364
  • 487