Skip to contents

Produces summary tables for Bayesian caribou population model results.

Usage

compareTrajectories(
  caribouBayesDemogMod,
  startYear = min(caribouBayesDemogMod$inData$disturbanceIn$Year),
  endYear = max(caribouBayesDemogMod$inData$disturbanceIn$Year),
  paramTable = data.frame(param = "observed"),
  exData = NULL,
  simInitial = NULL
)

Arguments

caribouBayesDemogMod

caribou Bayesian demographic model results produced by calling bayesianTrajectoryWorkflow(), trajectoriesFromNational(), trajectoriesFromBayesian(), or trajectoriesFromSummary()

startYear, endYear

year defining the beginning of the observation period and the end of the projection period.

paramTable

data.frame. Optional. Scenario parameters see simulateObservations()

exData

data.frame. Optional. Output of simulateObservations() that records the true population metrics of the population that observations were simulated from.

simInitial

Initial simulation results, produced by calling trajectoriesFromNational(), trajectoriesFromBayesian(), or trajectoriesFromSummary()

Value

a list of tables:

  • rr.summary.all: Mean parameter values for each year and standard deviation, upper and lower credible intervals projected by the Bayesian model, as well as scenario input parameters.

  • sim.all: Mean parameter values and upper and lower credible intervals from the initial model for each year, as well as scenario input parameters.

  • obs.all: Observed parameter values with column "Type" identifying if it is the "true" value of the simulated population or the "observed" value simulated based on the collaring program parameters.

Examples

scns <- getScenarioDefaults(projYears = 10, obsYears = 10,
                            obsAnthroSlope = 1, projAnthroSlope = 5,
                            collarCount = 20, cowMult = 5)

simO <- simulateObservations(scns)

out <- bayesianTrajectoryWorkflow(surv_data = simO$simSurvObs, recruit_data = simO$simRecruitObs,
                          disturbance = simO$simDisturbance,
                          niters=10)
#> Compiling model graph
#>    Resolving undeclared variables
#>    Allocating nodes
#> Graph information:
#>    Observed stochastic nodes: 10
#>    Unobserved stochastic nodes: 33
#>    Total graph size: 665
#> 
#> Initializing model
#> 
#> Warning: Adaptation incomplete
#> NOTE: Stopping adaptation
#> 
#> 
#> Compiling model graph
#>    Resolving undeclared variables
#>    Allocating nodes
#> Graph information:
#>    Observed stochastic nodes: 20
#>    Unobserved stochastic nodes: 79
#>    Total graph size: 694
#> 
#> Initializing model
#> 
#> Warning: Adaptation incomplete
#> NOTE: Stopping adaptation
#> 
#> 
#> Warning: no non-missing arguments to max; returning -Inf

outTables <- compareTrajectories(out, exData = simO$exData, paramTable = simO$paramTable,
                             simInitial = trajectoriesFromNational())
#> Using saved object
                             
str(outTables, max.level = 2, give.attr = FALSE)
#> List of 3
#>  $ rr.summary.all:'data.frame':	190 obs. of  40 variables:
#>   ..$ Year              : num [1:190] 2014 2014 2014 2014 2014 ...
#>   ..$ MetricTypeID      : chr [1:190] "c" "survival" "lambda" "Rbar" ...
#>   ..$ PopulationName    : chr [1:190] "A" "A" "A" "A" ...
#>   ..$ AnthroID          : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ Fire_excl_anthroID: num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ Mean              : num [1:190] NaN 0.849 1.076 0.457 0.854 ...
#>   ..$ lower             : Named num [1:190] NA 0.782 0.992 0.351 0.811 ...
#>   ..$ upper             : Named num [1:190] NA 0.907 1.15 0.561 0.893 ...
#>   ..$ probViable        : num [1:190] NaN 0 0.967 0 0 ...
#>   ..$ Parameter         : chr [1:190] "c" "Adult female survival" "Population growth rate" "Expected recruitment" ...
#>   ..$ Anthro            : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ Fire_excl_anthro  : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ time              : num [1:190] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ Total_dist        : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ iFire             : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ iAnthro           : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ obsAnthroSlope    : num [1:190] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ projAnthroSlope   : num [1:190] 5 5 5 5 5 5 5 5 5 5 ...
#>   ..$ rSlopeMod         : num [1:190] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ sSlopeMod         : num [1:190] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ correlateRates    : logi [1:190] FALSE FALSE FALSE FALSE FALSE FALSE ...
#>   ..$ projYears         : num [1:190] 10 10 10 10 10 10 10 10 10 10 ...
#>   ..$ obsYears          : num [1:190] 10 10 10 10 10 10 10 10 10 10 ...
#>   ..$ preYears          : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ N0                : num [1:190] 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ...
#>   ..$ qMin              : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ qMax              : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ uMin              : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ uMax              : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ zMin              : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ zMax              : num [1:190] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ cowMult           : num [1:190] 5 5 5 5 5 5 5 5 5 5 ...
#>   ..$ collarCount       : num [1:190] 20 20 20 20 20 20 20 20 20 20 ...
#>   ..$ interannualVar    :List of 190
#>   ..$ curYear           : num [1:190] 2023 2023 2023 2023 2023 ...
#>   ..$ ID                : int [1:190] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ label             : chr [1:190] "ID1_curYear2023_interannualVarlist(R_CV = 0.46, S_CV = 0.08696)_collarCount20_cowMult5_zMax0_zMin0_uMax0_uMin0_"| __truncated__ "ID1_curYear2023_interannualVarlist(R_CV = 0.46, S_CV = 0.08696)_collarCount20_cowMult5_zMax0_zMin0_uMax0_uMin0_"| __truncated__ "ID1_curYear2023_interannualVarlist(R_CV = 0.46, S_CV = 0.08696)_collarCount20_cowMult5_zMax0_zMin0_uMax0_uMin0_"| __truncated__ "ID1_curYear2023_interannualVarlist(R_CV = 0.46, S_CV = 0.08696)_collarCount20_cowMult5_zMax0_zMin0_uMax0_uMin0_"| __truncated__ ...
#>   ..$ startYear         : num [1:190] 2014 2014 2014 2014 2014 ...
#>   ..$ rQuantile         : logi [1:190] NA NA NA NA NA NA ...
#>   ..$ sQuantile         : logi [1:190] NA NA NA NA NA NA ...
#>  $ sim.all       :'data.frame':	160 obs. of  8 variables:
#>   ..$ MetricTypeID  : chr [1:160] "lambda_bar" "c" "recruitment" "survival" ...
#>   ..$ PopulationName: chr [1:160] "National" "National" "National" "National" ...
#>   ..$ Mean          : num [1:160] 1.034 1 0.343 0.878 1.027 ...
#>   ..$ lower         : Named num [1:160] 0.9059 1 0.0854 0.6949 0.796 ...
#>   ..$ upper         : Named num [1:160] 1.178 1 0.732 0.996 1.279 ...
#>   ..$ probViable    : num [1:160] 0.735 1 0 0.049 0.619 0 0 0 0 0.068 ...
#>   ..$ Parameter     : chr [1:160] "Expected growth rate" "c" "Recruitment" "Adult female survival" ...
#>   ..$ Year          : int [1:160] 2014 2014 2014 2014 2014 2014 2014 2014 2015 2015 ...
#>  $ obs.all       :'data.frame':	259 obs. of  36 variables:
#>   ..$ Year            : num [1:259] 2014 2014 2014 2014 2014 ...
#>   ..$ PopulationName  : Factor w/ 1 level "A": 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ Mean            : num [1:259] 0.565 0.251 0.502 0 0.389 ...
#>   ..$ Parameter       : chr [1:259] "Recruitment" "Adjusted recruitment" "Recruitment" NA ...
#>   ..$ MetricTypeID    : chr [1:259] "R" "X" "recruitment" "Fire_excl_anthro" ...
#>   ..$ Type            : chr [1:259] "observed" "true" "true" "true" ...
#>   ..$ Anthro          : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ Fire_excl_anthro: num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ time            : num [1:259] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ Total_dist      : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ iFire           : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ iAnthro         : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ obsAnthroSlope  : num [1:259] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ projAnthroSlope : num [1:259] 5 5 5 5 5 5 5 5 5 5 ...
#>   ..$ rSlopeMod       : num [1:259] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ sSlopeMod       : num [1:259] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ correlateRates  : logi [1:259] FALSE FALSE FALSE FALSE FALSE FALSE ...
#>   ..$ projYears       : num [1:259] 10 10 10 10 10 10 10 10 10 10 ...
#>   ..$ obsYears        : num [1:259] 10 10 10 10 10 10 10 10 10 10 ...
#>   ..$ preYears        : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ N0              : num [1:259] 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ...
#>   ..$ qMin            : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ qMax            : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ uMin            : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ uMax            : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ zMin            : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ zMax            : num [1:259] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ cowMult         : num [1:259] 5 5 5 5 5 5 5 5 5 5 ...
#>   ..$ collarCount     : num [1:259] 20 20 20 20 20 20 20 20 20 20 ...
#>   ..$ interannualVar  :List of 259
#>   ..$ curYear         : num [1:259] 2023 2023 2023 2023 2023 ...
#>   ..$ ID              : int [1:259] 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ label           : chr [1:259] "ID1_curYear2023_interannualVarlist(R_CV = 0.46, S_CV = 0.08696)_collarCount20_cowMult5_zMax0_zMin0_uMax0_uMin0_"| __truncated__ "ID1_curYear2023_interannualVarlist(R_CV = 0.46, S_CV = 0.08696)_collarCount20_cowMult5_zMax0_zMin0_uMax0_uMin0_"| __truncated__ "ID1_curYear2023_interannualVarlist(R_CV = 0.46, S_CV = 0.08696)_collarCount20_cowMult5_zMax0_zMin0_uMax0_uMin0_"| __truncated__ "ID1_curYear2023_interannualVarlist(R_CV = 0.46, S_CV = 0.08696)_collarCount20_cowMult5_zMax0_zMin0_uMax0_uMin0_"| __truncated__ ...
#>   ..$ startYear       : num [1:259] 2014 2014 2014 2014 2014 ...
#>   ..$ rQuantile       : logi [1:259] NA NA NA NA NA NA ...
#>   ..$ sQuantile       : logi [1:259] NA NA NA NA NA NA ...