Calculate (quasi-)extinction risk at multiple thresholds for a simulate object

risk_curve(sims, threshold = NULL, subset = NULL, times = NULL, n = 100)

Arguments

sims

an object returned from simulate

threshold

integer or numeric vector denoting the set of threshold population sizes used to define the risk curve. Defaults to n evenly spaced values from 0 to the maximum observed abundance

subset

integer vector denoting the population classes to include in calculation of population abundance. Defaults to all classes

times

integer vector specifying generations to include in calculation of extinction risk. Defaults to all simulated generations

n

integer specifying number of threshold values to use in default case when threshold is not specified. Defaults to 100

Details

Risk curves represent pr_extinct at multiple threshold population sizes simultaneously. This gives an expression of risk of population declines below a range of values. Risk curves are extracted from a simulate object as the proportion of replicate trajectories that fall below each threshold value at any time step within a set period. Abundances can be specified for all population classes or for a subset of classes.

Examples

# define a basic population
nstage <- 5
popmat <- matrix(0, nrow = nstage, ncol = nstage)
popmat[reproduction(popmat, dims = 4:5)] <- c(10, 20)
popmat[transition(popmat)] <- c(0.25, 0.3, 0.5, 0.65)

# define a dynamics object
dyn <- dynamics(popmat)

# simulate with the default updater
sims <- simulate(dyn, nsim = 1000)

# calculate risk curve
risk_curve(sims)
#>     0     6    12    19    25    31    37    44    50    56    62    68    75 
#> 0.000 0.000 0.000 0.000 0.031 0.203 0.587 0.921 0.996 1.000 1.000 1.000 1.000 
#>    81    87    93   100   106   112   118   124   131   137   143   149   156 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   162   168   174   181   187   193   199   205   212   218   224   230   237 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   243   249   255   261   268   274   280   286   293   299   305   311   317 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   324   330   336   342   349   355   361   367   373   380   386   392   398 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   405   411   417   423   430   436   442   448   454   461   467   473   479 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   486   492   498   504   510   517   523   529   535   542   548   554   560 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   566   573   579   585   591   598   604   610   616 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 

# calculate risk curve for multiple thresholds between 0 and 100
risk_curve(sims, threshold = seq(0, 100, by = 1))
#>     0     1     2     3     4     5     6     7     8     9    10    11    12 
#> 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 
#>    13    14    15    16    17    18    19    20    21    22    23    24    25 
#> 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.002 0.003 0.008 0.012 0.018 0.033 
#>    26    27    28    29    30    31    32    33    34    35    36    37    38 
#> 0.051 0.068 0.095 0.124 0.167 0.199 0.260 0.317 0.384 0.449 0.517 0.566 0.627 
#>    39    40    41    42    43    44    45    46    47    48    49    50    51 
#> 0.695 0.751 0.816 0.869 0.900 0.927 0.948 0.962 0.975 0.986 0.992 0.996 0.997 
#>    52    53    54    55    56    57    58    59    60    61    62    63    64 
#> 0.998 0.999 0.999 0.999 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    65    66    67    68    69    70    71    72    73    74    75    76    77 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    78    79    80    81    82    83    84    85    86    87    88    89    90 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    91    92    93    94    95    96    97    98    99   100 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 

# calculate risk curve for 4 and 5 year olds only
risk_curve(sims, subset = 4:5)
#>     0     0     1     1     1     2     2     3     3     3     4     4     4 
#> 0.000 0.001 0.030 0.287 0.715 0.967 0.997 1.000 1.000 1.000 1.000 1.000 1.000 
#>     5     5     6     6     6     7     7     7     8     8     9     9     9 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    10    10    10    11    11    12    12    12    13    13    13    14    14 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    15    15    15    16    16    16    17    17    18    18    18    19    19 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    19    20    20    21    21    21    22    22    22    23    23    24    24 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    24    25    25    25    26    26    27    27    27    28    28    28    29 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    29    30    30    30    31    31    31    32    32    33    33    33    34 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    34    34    35    35    36    36    36    37    37 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 

# calculate risk curve but ignore first 10 years
risk_curve(sims, times = 11:51)
#>     0     3     7    10    14    17    20    24    27    31    34    37    41 
#> 0.000 0.000 0.000 0.000 0.000 0.000 0.002 0.017 0.081 0.186 0.386 0.587 0.793 
#>    44    48    51    55    58    61    65    68    72    75    78    82    85 
#> 0.916 0.968 0.993 0.995 0.997 0.999 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>    89    92    95    99   102   106   109   112   116   119   123   126   130 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   133   136   140   143   147   150   153   157   160   164   167   170   174 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   177   181   184   187   191   194   198   201   204   208   211   215   218 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   222   225   228   232   235   239   242   245   249   252   256   259   262 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   266   269   273   276   279   283   286   290   293   296   300   303   307 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 
#>   310   314   317   320   324   327   331   334   337 
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000