| Quantity | Correlation | Mean |% difference| | Maximum |% difference| | 2024 % difference |
|---|---|---|---|---|
| NonParametricPM | ||||
| SSB | 1.00 | 1.30 | 10.00 | −0.20 |
| Recruitment | 1.00 | 0.30 | 2.00 | −0.90 |
| Biomass | 1.00 | 1.00 | 8.80 | −0.20 |
| 2D AR1 | ||||
| SSB | 0.98 | 16.70 | 70.30 | −2.00 |
| Recruitment | 1.00 | 6.40 | 18.00 | −1.90 |
| Biomass | 0.96 | 13.50 | 65.20 | −1.30 |
2024 EBS pollock Rceattle bridge and SparseNUTS results
ADMB validation, selectivity sensitivities, and posterior diagnostics
1 Executive summary
The updated Rceattle NonParametricPM bridge closely reproduces the modified 2024 ADMB model over the assessment period. Correlations are 0.9995 for spawning biomass, 1.0000 for recruitment, and 0.9992 for total biomass. The 2024 differences are all within 1%.
The 2D age-by-year AR1 fishery-selectivity sensitivity completed but did not converge. Its maximum gradient was 17.8, its Hessian was not invertible, and 56 fishing-mortality parameters were on configured bounds. Although its 2024 biomass quantities remain close to ADMB, its historical trajectories differ substantially.
The SparseNUTS run used 8 chains of 2,000 iterations: 1,000 warmup and 1,000 retained iterations per chain. It produced 8,000 post-warmup draws with zero divergences. Mixing is not yet adequate for final inference: the maximum R-hat is 1.095 and the minimum bulk effective sample size is 57.4.
The SparseNUTS posterior is exploratory. The absence of divergences is encouraging, but the slow index-catchability/fishing-mortality direction requires longer chains or reparameterization before posterior intervals should be used for assessment advice.
2 Model configurations
The comparison includes four selectivity treatments:
- ADMB bridge: the modified
m23_rceattle_fullreference. - NonParametricPM: the two-stage Rceattle bridge fit with time-varying fishery selectivity.
- 2D AR1: the age-by-year AR1 fishery-selectivity sensitivity, integrated with a Laplace approximation.
- SparseNUTS: the NonParametricPM likelihood sampled jointly with recruitment deviations treated as random effects. SparseNUTS used the sparse precision rotation and eight parallel chains.
The SparseNUTS precision matrix was 0.49% dense for 1,219 joint parameters (1,144 fixed effects and 75 recruitment random effects). The sampler used adapt_delta = 0.95, maximum tree depth 12, and seed 20240724.
3 Bridge validation
The NonParametricPM discrepancies are concentrated in the early years: 1964 SSB is 10.0% below ADMB, while the 1990, 2008, and 2024 SSB differences are approximately 0.1%, 0.1%, and 0.2%, respectively. This is consistent with weak identification of initial abundance and fishery-selectivity scale rather than a persistent difference in modern population dynamics.
4 Selectivity comparisons
4.1 Distribution across assessment years
Figure 1 compares the distributions of normalized fishery selectivity across 1964–2024. For the three deterministic fits, the density is the distribution over years. For SparseNUTS it includes both year-to-year variation and the retained posterior subset (100 evenly spaced draws per chain). Each annual curve is normalized to its own maximum so the figure compares shape rather than arbitrary scale.
4.2 Terminal-year posterior
The terminal-year ridges in Figure 2 show SparseNUTS posterior uncertainty. Deterministic estimates are added as colored points at each age. This makes discrepancies in shape visible without conflating them with historical variability.
5 SparseNUTS diagnostics
5.1 Summary
| Item | Value |
|---|---|
| Chains | 8 |
| Iterations per chain | 2000 |
| Warmup per chain | 1000 |
| Retained draws | 8000 |
| Divergent transitions (%) | 0 |
| Tree-depth saturations (%) | 0 |
| Maximum R-hat | 1.095 |
| Minimum bulk ESS | 57.4 |
| Parameters with R-hat < 1.01 | 96.0% |
| Parameters with bulk ESS ≥ 400 | 98.4% |
| Parameter | R-hat | Bulk ESS | Tail ESS |
|---|---|---|---|
| index_log_q[3] | 1.10 | 57.36 | 80.37 |
| log_F[3] | 1.09 | 57.47 | 95.08 |
| log_F[8] | 1.09 | 59.50 | 80.86 |
| log_F[9] | 1.09 | 60.43 | 77.86 |
| log_F[2] | 1.09 | 61.39 | 111.39 |
| log_F[6] | 1.09 | 63.54 | 100.28 |
| log_F[5] | 1.09 | 62.62 | 97.89 |
| log_F[7] | 1.09 | 60.81 | 102.56 |
| log_F[4] | 1.09 | 63.06 | 91.68 |
| log_F[10] | 1.09 | 63.49 | 107.42 |
| log_F[11] | 1.08 | 66.17 | 90.33 |
| log_F[12] | 1.08 | 67.60 | 98.89 |
The slowest direction links early fishing mortality and the third index catchability coefficient. That direction is consistent with the scale weakness already identified by the deterministic Hessian diagnostics.
5.2 Trace plots
5.3 R-hat and effective sample size
5.4 Sampler behavior
6 Convergence interpretation
The results separate three issues:
- Bridge fidelity: NonParametricPM closely matches modern ADMB trajectories, showing that the structural and likelihood bridge is successful.
- Frequentist estimability: the NonParametricPM Hessian remains non-positive definite in weakly identified selectivity directions, so asymptotic standard errors are unavailable.
- Posterior exploration: SparseNUTS traverses the joint posterior without divergences, but the slow catchability/fishing-mortality direction mixes inadequately in 1,000 retained draws per chain.
The next useful MCMC step is targeted reparameterization or additional identifying information for survey catchability and early fishing mortality, followed by longer chains. Simply reporting the current posterior intervals would understate the unresolved mixing problem.
7 Reproducibility
The MCMC workflow is implemented in 2024 EBS pollock SparseNUTS.R. The deterministic fits are produced by 2024 EBS pollock.R, which now saves reusable fit objects. All posterior and report inputs are stored under results/.
| Package | Version |
|---|---|
| Rceattle | 4.8.0 |
| SparseNUTS | 1.0.2 |
| StanEstimators | 0.3.1 |
| posterior | 1.7.0 |
R version 4.6.1 (2026-06-24)
Platform: aarch64-apple-darwin23
Running under: macOS Tahoe 26.5.2
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRlapack.dylib; LAPACK version 3.12.1
locale:
[1] C.UTF-8/C.UTF-8/C.UTF-8/C/C.UTF-8/C.UTF-8
time zone: America/Los_Angeles
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] tidyr_1.3.2 SparseNUTS_1.0.2 Rceattle_4.8.0 purrr_1.2.2
[5] posterior_1.7.0 knitr_1.51 gt_1.3.0 ggridges_0.5.7
[9] ggplot2_4.0.3 dplyr_1.2.1 bayesplot_1.15.0
loaded via a namespace (and not attached):
[1] tensorA_0.36.2.1 sass_0.4.10 generics_0.1.4
[4] xml2_1.6.0 stringi_1.8.7 lattice_0.22-9
[7] digest_0.6.39 magrittr_2.0.5 evaluate_1.0.5
[10] grid_4.6.1 RColorBrewer_1.1-3 fastmap_1.2.0
[13] plyr_1.8.9 jsonlite_2.0.0 Matrix_1.7-5
[16] backports_1.5.1 spam_2.11-4 viridisLite_0.4.3
[19] scales_1.4.0 StanEstimators_0.3.1 abind_1.4-8
[22] cli_3.6.6 rlang_1.3.0 sparseinv_0.1.3
[25] withr_3.0.3 yaml_2.3.12 ellipse_0.5.0
[28] otel_0.2.0 parallel_4.6.1 tools_4.6.1
[31] reshape2_1.4.5 checkmate_2.3.4 vctrs_0.7.3
[34] R6_2.6.1 matrixStats_1.5.0 lifecycle_1.0.5
[37] stringr_1.6.0 fs_2.1.0 htmlwidgets_1.6.4
[40] pkgconfig_2.0.3 RcppParallel_5.1.11-2 pillar_1.11.1
[43] gtable_0.3.6 loo_2.10.0 glue_1.8.1
[46] Rcpp_1.1.2 xfun_0.60 tibble_3.3.1
[49] tidyselect_1.2.1 farver_2.1.2 htmltools_0.5.9
[52] labeling_0.4.3 rmarkdown_2.31 dotCall64_1.2
[55] TMB_1.9.21 compiler_4.6.1 S7_0.2.2
[58] distributional_0.8.1