passage_to_spawner_submodel.Rmd
The Passage to Spawner (P2S) is a Bayesian model that produces
estimates of spawning adults for Battle Creek
,
Clear Creek
, Deer Creek
, and
Mill Creek
with uncertainty. The model can be used to get
spawning adults for a tributary as part of any stock-recruit-based SRJPE
model alternative.
The purpose of the P2S submodel is to take in observed upstream
passage, or escapement, estimates from a tributary and model the
relationship with spawner counts, either from redd surveys or holding
surveys. The P2S produces estimated spawner counts with uncertainty for
use in creating the stock
portion of a
stock-recruit model
in the SRJPE.
The model also estimates a conversion rate
, or
proportion of adults that pass though the video counting systems that
become spawning adults (i.e. prespawn mortality). The P2S can also be
used for forecasting; it takes in a standardized environmental covariate
and uses this variable to predict spawners from upstream passage counts.
In this way, the P2S provides resiliency for years where data may be
missing (i.e. years where upstream passage data were collected but
spawner surveys were not conducted).
P2S estimates adult abundance needed for the stock recruit model. See figure 1 below to see how it fits into the full JPE model system.
Figure 1: Conceptual Diagram of SRJPE model. P2S sub-model
highlighted in yellow
The submodel takes observed data (in orange) and predicts spawner counts (in pink). Parameters estimated by the model are light pink; for more information, see documentation.
The model takes in two datasets:
SRJPEdata::observed_adult_input
data object.SRJPEdata::adult_model_covariates_standard
object.The model is run for a given stream and environmental covariate.
battle creek
and
clear creek
.water year type
,
growing degree days
, maximum flow
,
median passage timing
, and passage index
.
# run the model for battle creek and water year type
battle_inputs <- prepare_P2S_inputs("battle creek", "wy_type")
battle_P2S_model <- run_passage_to_spawner_model(battle_inputs)
This truncates the dataset to only those years where all covariate
data is available. You can look at parameters that help diagnose the
performance of the different covariates like R2_data
,
R2_fixed
, mean_redds_per_spawner
, and
b1_survival
.
# run the model for battle creek and water year type
battle_covariate_comparison <- compare_P2S_model_covariates("battle creek")
battle_covariate_comparison |>
filter(parameter %in% c("R2_data", "R2_fixed", "mean_redds_per_spawner",
"sigma_redds_per_spawner", "b1_survival",
"spawner_abundance_forecast"))
The P2S model produces a STANfit object when run. You can extract
parameter estimates from the model object with the function
extract_P2S_estimates()
. This produces a table.
battle_parameter_estimates <- extract_P2S_estimates(battle_P2S_model)
parameter | mean | se_mean | sd | 2.5 | 25 | 50 | 75 | 97.5 | n_eff | Rhat | year |
---|---|---|---|---|---|---|---|---|---|---|---|
log_mean_redds_per_spawner | -0.7756127 | 0.0009767 | 0.1662082 | -1.1088123 | -0.8826713 | -0.7743096 | -0.6676304 | -0.4474190 | 28957.38 | 1.0001819 | NA |
sigma_redds_per_spawner | 0.6176322 | 0.0005426 | 0.1185665 | 0.4352698 | 0.5341672 | 0.6007244 | 0.6824753 | 0.8992626 | 47743.00 | 1.0001319 | NA |
b_survival | 0.2207787 | 0.0029467 | 0.3314244 | -0.4351591 | 0.0046350 | 0.2197987 | 0.4356461 | 0.8865241 | 12650.26 | 1.0004669 | 2001 |
log_redds_per_spawner | -1.2754301 | 0.0005788 | 0.1728325 | -1.6260166 | -1.3910668 | -1.2711890 | -1.1559771 | -0.9504445 | 89168.74 | 1.0000197 | 2001 |
log_redds_per_spawner | -1.1327236 | 0.0003877 | 0.1164060 | -1.3684956 | -1.2099801 | -1.1305666 | -1.0535601 | -0.9122176 | 90168.53 | 0.9999576 | 2002 |
log_redds_per_spawner | -0.5759191 | 0.0029505 | 0.3364033 | -1.2524814 | -0.7937494 | -0.5754964 | -0.3554868 | 0.0866867 | 12999.47 | 1.0004778 | 2003 |
log_redds_per_spawner | -0.9447890 | 0.0005517 | 0.1621853 | -1.2723532 | -1.0527563 | -0.9414259 | -0.8333916 | -0.6380928 | 86427.66 | 0.9999703 | 2004 |
log_redds_per_spawner | -0.6980111 | 0.0029671 | 0.3493897 | -1.3982250 | -0.9257723 | -0.6980626 | -0.4669272 | -0.0134806 | 13866.49 | 1.0004266 | 2005 |
log_redds_per_spawner | -0.8264333 | 0.0029588 | 0.3382511 | -1.5006455 | -1.0461285 | -0.8252512 | -0.6038720 | -0.1573202 | 13068.74 | 1.0004673 | 2006 |
log_redds_per_spawner | -0.7938967 | 0.0002782 | 0.0860919 | -0.9653668 | -0.8509358 | -0.7926342 | -0.7352431 | -0.6292074 | 95740.56 | 0.9999721 | 2007 |
We can also see forecasted spawner count for a wet or dry year with
uncertainty by looking at the abundance_forecast
parameters, which use the average upstream passage as a predictor
variable and water year type as the predictive covariate. Deer and Mill
Creek model fits are limited in utility due to a lack of available data,
so the confidence intervals for those tributaries are much greater than
for Battle and Clear Creeks.
See the Passage
to Spawner Full Model Description for full documentation of
development, testing, and results of the submodel. Codebase for the
analysis in the Full Model Description can be found here.
See adult data report
for full documentation on adult
Chinook salmon data collection.