Calculate (quasi-)extinction risk at multiple thresholds for a simulate object
Source: R/summarise.R
risk_curve.RdCalculate (quasi-)extinction risk at multiple thresholds
for a simulate object
Arguments
- sims
an object returned from
simulate- threshold
integerornumericvector denoting the set of threshold population sizes used to define the risk curve. Defaults tonevenly spaced values from 0 to the maximum observed abundance- subset
integervector denoting the population classes to include in calculation of population abundance. Defaults to all classes- times
integervector specifying generations to include in calculation of extinction risk. Defaults to all simulated generations- n
integerspecifying number of threshold values to use in default case whenthresholdis 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 18 25 31 37 43 49 55 61 67 74
#> 0.000 0.000 0.000 0.000 0.020 0.199 0.564 0.888 0.982 1.000 1.000 1.000 1.000
#> 80 86 92 98 104 110 116 123 129 135 141 147 153
#> 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
#> 159 165 172 178 184 190 196 202 208 215 221 227 233
#> 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
#> 239 245 251 257 264 270 276 282 288 294 300 306 313
#> 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
#> 319 325 331 337 343 349 355 362 368 374 380 386 392
#> 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
#> 398 405 411 417 423 429 435 441 447 454 460 466 472
#> 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
#> 478 484 490 496 503 509 515 521 527 533 539 546 552
#> 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
#> 558 564 570 576 582 588 595 601 607
#> 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.000 0.002 0.006 0.008 0.009 0.015 0.025
#> 26 27 28 29 30 31 32 33 34 35 36 37 38
#> 0.042 0.065 0.091 0.126 0.171 0.228 0.276 0.325 0.400 0.473 0.516 0.578 0.646
#> 39 40 41 42 43 44 45 46 47 48 49 50 51
#> 0.703 0.762 0.821 0.855 0.891 0.924 0.944 0.958 0.972 0.979 0.981 0.987 0.993
#> 52 53 54 55 56 57 58 59 60 61 62 63 64
#> 0.996 0.999 1.000 1.000 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 2 3 3 4 4 4
#> 0.000 0.000 0.015 0.203 0.629 0.934 0.998 1.000 1.000 1.000 1.000 1.000 1.000
#> 5 5 5 6 6 6 7 7 7 8 8 8 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
#> 9 10 10 10 11 11 11 12 12 12 13 13 13
#> 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
#> 14 14 14 15 15 16 16 16 17 17 17 18 18
#> 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
#> 18 19 19 19 20 20 21 21 21 22 22 22 23
#> 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
#> 23 23 24 24 24 25 25 25 26 26 27 27 27
#> 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
#> 28 28 28 29 29 29 30 30 30 31 31 31 32
#> 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
#> 32 33 33 33 34 34 34 35 35
#> 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 38 41
#> 0.000 0.000 0.000 0.000 0.000 0.000 0.003 0.015 0.073 0.208 0.411 0.603 0.809
#> 44 48 51 55 58 61 65 68 72 75 79 82 85
#> 0.921 0.973 0.991 0.998 0.998 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
#> 89 92 96 99 102 106 109 113 116 120 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 137 140 143 147 150 154 157 161 164 167 171 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
#> 178 181 184 188 191 195 198 202 205 208 212 215 219
#> 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 229 232 236 239 243 246 249 253 256 260 263
#> 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 270 273 277 280 284 287 290 294 297 301 304 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
#> 311 314 318 321 325 328 331 335 338
#> 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000