2024 EBS pollock Rceattle bridge and SparseNUTS results

ADMB validation, selectivity sensitivities, and posterior diagnostics

Author
Affiliation

James Ianelli

Alaska Fisheries Science Center

Published

July 29, 2026

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.

Warning

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:

  1. ADMB bridge: the modified m23_rceattle_full reference.
  2. NonParametricPM: the two-stage Rceattle bridge fit with time-varying fishery selectivity.
  3. 2D AR1: the age-by-year AR1 fishery-selectivity sensitivity, integrated with a Laplace approximation.
  4. 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

Table 1: Rceattle trajectory agreement with the modified ADMB bridge.
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

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.

Figure 1: Fishery selectivity distributions by age and estimation method, 1964–2024. SparseNUTS includes posterior and temporal variation; deterministic methods show temporal variation.

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.

Figure 2: SparseNUTS posterior distributions for 2024 relative fishery selectivity, with deterministic method estimates.

5 SparseNUTS diagnostics

5.1 Summary

Table 2: SparseNUTS run configuration and diagnostic 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%
Table 3: Parameters with the largest split R-hat values.
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

Figure 3: Post-warmup traces for the six parameters with the largest R-hat values.

5.3 R-hat and effective sample size

Figure 4: Distribution of R-hat and relationship between bulk effective sample size and R-hat.
Figure 5: Distribution of R-hat and relationship between bulk effective sample size and R-hat.

5.4 Sampler behavior

Figure 6: Post-warmup acceptance statistics and NUTS tree depth by chain.
Figure 7: Post-warmup acceptance statistics and NUTS tree depth by chain.

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/.

Table 4: Software versions used for the SparseNUTS run.
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