Appendix B — Sensitivity A — Minimum sample size (N ≥ 40)

B.1 Recorded change

Following protocol §3.7, we retained only contrasts with total sample size \(n_1 + n_2 \geq 40\).

NoteWhat changed—and what did not

Changed: the analysis includes 5,253 of 7,237 contrasts after applying the sample-size threshold.

Unchanged: the moderator definitions, phylogenetic effect, ref_id effect, priors, and MCMC settings match the primary models.

B.2 Model specification

Models were fit on a remote server, not while rendering this book. Each model uses 4 chains × 4,000 iterations (2,000 warmup), adapt_delta = 0.97, max_treedepth = 15, and the cmdstanr backend. This chapter reads cached summary tables only.

Code
dat_n40 <- dat_es |> dplyr::filter(n_total >= 40)
phylo   <- prepare_phylo_and_data(dat_mod, A_full)
formula <- build_ls_formula(moderator, has_phylogeny = phylo$has_phylo)
fit     <- fit_ls_model(
  phylo$dat_model, formula,
  build_ls_priors(formula, phylo$dat_model, phylo$V, A = phylo$A_mod),
  V = phylo$V, A = phylo$A_mod, mcmc_args = default_mcmc_args)

B.3 Convergence diagnostics

Six moderator models are reported (m01–m05, m07). The environmental-change model (m08) is excluded because its primary fit did not converge. Convergence criteria: max \(\hat{R} \leq 1.01\), bulk and tail ESS \(\geq 400\), and no divergent transitions.

Code
sens_diagnostics_table(variant)
Convergence diagnostics (4 chains, 2000 post-warmup draws each).
Moderator Max R̂ Min bulk ESS Min tail ESS Divergences Max-treedepth hits
Trait type (m05) 1.0127 454 627 133 0
Comparison design (m02) 1.0074 550 656 0 0
Disturbance context (m01) 1.0055 599 1134 0 0
Phenotypic vs genetic study (m07) 1.0154 630 1423 0 0
Elapsed time — log₁₀ generations (m04) 1.0072 645 1217 0 0
Elapsed time — log₁₀ years (m03) 1.0053 748 1820 0 0
Warning

Models requiring convergence caution: Phenotypic vs genetic study (m07): max Rhat = 1.0154, min bulk/tail ESS = 630/1423, divergences = 0; Trait type (m05): max Rhat = 1.0127, min bulk/tail ESS = 454/627, divergences = 133. See the table above for ESS and treedepth diagnostics.

B.4 Overall comparison

The comparison label uses a fixed rule: DIFFERS means that the posterior median changed sign or that the 95% credible interval changed between including and excluding zero. Consistent means neither occurred; it does not mean the two estimates are identical. Intercepts are omitted from the overall count.

Code
cat("**Overall:** ", sens_stability_summary(variant), "\n")

Overall: 3 of 34 moderator coefficients change their credible-interval conclusion relative to the primary fit.

B.5 Paired estimates by moderator

Each table reports raw treatment-coded coefficients for the location (mean ln M) and scale (log-SD) submodels. See the sensitivity overview for column definitions.

Code
sens_all_moderator_tables(variant)

B.5.1 Disturbance context (m01)

Code
sens_moderator_table('sens1_n40', 'disturbance')
Disturbance context (m01)
Sub-model Term Sensitivity β [95% CrI] Primary β [95% CrI] Stability
Location (mean lnM) Intercept (ref.) -1.039 [-1.792, -0.301] -0.530 [-1.338, 0.319] DIFFERS
Location (mean lnM) Hunt_harv -0.044 [-0.679, 0.591] -0.276 [-0.630, 0.079] consistent
Location (mean lnM) Introduction 0.261 [-0.364, 0.879] 0.006 [-0.384, 0.399] consistent
Location (mean lnM) Landscapechange 0.456 [-0.230, 1.182] 0.207 [-0.251, 0.672] consistent
Location (mean lnM) Other -0.067 [-0.692, 0.562] -0.281 [-0.623, 0.063] consistent
Location (mean lnM) Pollution 0.539 [-0.254, 1.329] 0.173 [-0.381, 0.729] consistent
Location (mean lnM) Responsetointroductions 0.596 [-0.225, 1.423] 0.100 [-0.503, 0.692] consistent
Scale (log-SD) Intercept (ref.) -0.550 [-0.745, -0.358] -0.692 [-0.871, -0.527] consistent
Scale (log-SD) Hunt_harv 0.228 [0.027, 0.431] 0.365 [0.189, 0.554] consistent
Scale (log-SD) Introduction -0.087 [-0.282, 0.109] 0.015 [-0.155, 0.199] DIFFERS
Scale (log-SD) Landscapechange -0.438 [-0.753, -0.136] -0.431 [-0.737, -0.142] consistent
Scale (log-SD) Other 0.109 [-0.093, 0.311] 0.138 [-0.038, 0.329] consistent
Scale (log-SD) Pollution -0.320 [-0.763, 0.089] -0.184 [-0.489, 0.119] consistent
Scale (log-SD) Responsetointroductions 0.137 [-0.116, 0.395] 0.256 [0.028, 0.486] DIFFERS

B.5.2 Comparison design (m02)

Code
sens_moderator_table('sens1_n40', 'design')
Comparison design (m02)
Sub-model Term Sensitivity β [95% CrI] Primary β [95% CrI] Stability
Location (mean lnM) Intercept (ref.) -0.978 [-1.506, -0.444] -0.724 [-1.471, 0.025] DIFFERS
Location (mean lnM) Synchronic 0.242 [0.043, 0.438] 0.250 [0.077, 0.418] consistent
Scale (log-SD) Intercept (ref.) -0.399 [-0.441, -0.356] -0.468 [-0.507, -0.428] consistent
Scale (log-SD) Synchronic -0.231 [-0.288, -0.174] -0.208 [-0.260, -0.157] consistent

B.5.3 Elapsed time — log₁₀ years (m03)

Code
sens_moderator_table('sens1_n40', 'log10_years')
Elapsed time — log₁₀ years (m03)
Sub-model Term Sensitivity β [95% CrI] Primary β [95% CrI] Stability
Location (mean lnM) Intercept (ref.) -1.276 [-2.001, -0.587] -1.021 [-1.855, -0.173] consistent
Location (mean lnM) slope 0.305 [0.229, 0.382] 0.307 [0.235, 0.381] consistent
Scale (log-SD) Intercept (ref.) -0.358 [-0.437, -0.278] -0.354 [-0.427, -0.279] consistent
Scale (log-SD) slope -0.128 [-0.181, -0.074] -0.167 [-0.215, -0.119] consistent

B.5.4 Elapsed time — log₁₀ generations (m04)

Code
sens_moderator_table('sens1_n40', 'log10_generations')
Elapsed time — log₁₀ generations (m04)
Sub-model Term Sensitivity β [95% CrI] Primary β [95% CrI] Stability
Location (mean lnM) Intercept (ref.) -1.194 [-1.857, -0.530] -0.918 [-1.839, 0.017] DIFFERS
Location (mean lnM) slope 0.294 [0.216, 0.373] 0.286 [0.215, 0.359] consistent
Scale (log-SD) Intercept (ref.) -0.334 [-0.386, -0.281] -0.401 [-0.450, -0.350] consistent
Scale (log-SD) slope -0.159 [-0.195, -0.124] -0.149 [-0.182, -0.117] consistent

B.5.5 Trait type (m05)

Code
sens_moderator_table('sens1_n40', 'trait_type')
Trait type (m05)
Sub-model Term Sensitivity β [95% CrI] Primary β [95% CrI] Stability
Location (mean lnM) Intercept (ref.) -1.947 [-3.123, -0.709] -1.332 [-2.519, -0.105] consistent
Location (mean lnM) growth 1.275 [0.184, 2.309] 0.829 [0.042, 1.616] consistent
Location (mean lnM) otherLH 1.257 [0.179, 2.291] 0.907 [0.131, 1.681] consistent
Location (mean lnM) othermorphology 1.095 [0.020, 2.128] 0.782 [0.003, 1.555] consistent
Location (mean lnM) phenology 1.288 [0.154, 2.372] 0.806 [-0.022, 1.626] DIFFERS
Location (mean lnM) physio 1.045 [-0.028, 2.090] 0.698 [-0.077, 1.477] consistent
Location (mean lnM) response 1.820 [0.534, 3.154] 1.167 [0.313, 2.024] consistent
Location (mean lnM) size 1.213 [0.142, 2.249] 0.835 [0.058, 1.611] consistent
Scale (log-SD) Intercept (ref.) -0.247 [-0.774, 0.333] -0.373 [-0.863, 0.129] consistent
Scale (log-SD) growth -1.173 [-1.889, -0.514] -0.977 [-1.615, -0.387] consistent
Scale (log-SD) otherLH -0.283 [-0.864, 0.250] -0.181 [-0.688, 0.314] consistent
Scale (log-SD) othermorphology -0.595 [-1.172, -0.064] -0.519 [-1.027, -0.025] consistent
Scale (log-SD) phenology -0.469 [-1.102, 0.127] -0.383 [-0.937, 0.171] consistent
Scale (log-SD) physio -0.600 [-1.234, -0.013] -0.698 [-1.225, -0.179] consistent
Scale (log-SD) response -1.007 [-3.881, 0.695] -0.550 [-1.354, 0.158] consistent
Scale (log-SD) size -0.121 [-0.705, 0.408] -0.037 [-0.538, 0.454] consistent

B.5.6 Phenotypic vs genetic study (m07)

Code
sens_moderator_table('sens1_n40', 'genphen')
Phenotypic vs genetic study (m07)
Sub-model Term Sensitivity β [95% CrI] Primary β [95% CrI] Stability
Location (mean lnM) Intercept (ref.) -0.696 [-1.233, -0.120] -0.427 [-1.208, 0.371] DIFFERS
Location (mean lnM) Phenotypic -0.201 [-0.385, -0.017] -0.210 [-0.355, -0.063] consistent
Scale (log-SD) Intercept (ref.) -0.795 [-0.853, -0.735] -0.836 [-0.889, -0.784] consistent
Scale (log-SD) Phenotypic 0.357 [0.289, 0.425] 0.338 [0.278, 0.398] consistent