This report compares the size selectivity of two gillnet types, CEN (standard) and MOD (modified), for Perch and Roach, fitted under two zone scopes:
zone included as a fixed effect
(m1_Perch, m1_roach).Zone == "Benthic", with zone dropped from
the formula since it is constant within the subset
(m1_Perch_Benthic, m1_roach_Benthic).The aim is to determine whether restricting the analysis to the
Benthic zone changes the conclusions about where along the length axis
CEN and MOD nets differ in catch rate — i.e. whether a single fixed
zone term in the combined model adequately captures
habitat-driven differences, or whether Benthic-specific fitting reveals
a different selectivity pattern.
lm(log(Length) ~ log(Mean_Weight))).catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net, k = 10) + mesh_mm + net_type [+ zone] + s(lake_year, bs = "re"),
family = mgcv::nb(), estimated by REML.
mesh_net = interaction(mesh_mm, net_type) gives each mesh
size × net type combination its own length-selectivity smooth.
zone is included only in the both-zones models.s(length_cm, by = mesh_mm)).s(length_cm, by = mesh_net)), the more flexible
formulation for comparing CEN vs MOD.anova(m0, m1, test = "Chisq")); a significant result means
letting selectivity vary by net type improves the fit.build_selectivity_grid() constructs a prediction grid
per mesh size × net type, with the length range trimmed to the 1st–99th
percentile of observed catch lengths (avoiding extrapolation into sparse
data at the tails, which otherwise inflates the smooth’s standard
error). predict_selectivity() predicts on the link scale,
excluding the lake_year random effect (population-level
prediction), and back-transforms to the response scale with 95%
confidence intervals. plot_selectivity() renders the result
faceted by mesh size (independent x/y scales per panel) with CEN vs MOD
overlaid.dat_perch_benthic <- dat_perch |> filter(zone == "Benthic"),
and equivalently for Roach), so mesh_net smooths in the
Benthic-only fits are estimated from less data — expect wider confidence
intervals, especially for less-common mesh × net-type combinations.newx_p <- data.frame(
Mean_Weight = seq(min(Data_Perch_LW$Mean_Weight),
max(Data_Perch_LW$Mean_Weight), length.out = 200)
)
lw_pred_p <- bind_cols(
newx_p,
as.data.frame(predict(lw_model_Perch, newdata = newx_p, interval = "confidence"))
) |>
mutate(across(c(fit, lwr, upr), exp))
ggplot(Data_Perch_LW, aes(Mean_Weight, Length)) +
geom_point(alpha = 0.4) +
geom_ribbon(data = lw_pred_p, aes(y = fit, ymin = lwr, ymax = upr), alpha = 0.2) +
geom_line(data = lw_pred_p, aes(y = fit), colour = "blue", linewidth = 1) +
labs(x = "Mean weight (g)", y = "Length (cm)") +
theme_minimal()
Perch_Plot
Perch_NPUE_Plot
Model comparison: does letting the selectivity smooth vary by net type (Model 1) improve on the shared-smooth baseline (Model 0)?
anova(m0_Perch, m1_Perch, test = "Chisq")
## Analysis of Deviance Table
##
## Model 1: catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_mm, k = 10) +
## mesh_mm + net_type + zone + s(lake_year, bs = "re")
## Model 2: catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net,
## k = 10) + mesh_mm + net_type + zone + s(lake_year, bs = "re")
## Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1 8840.6 31189
## 2 8820.6 31084 19.957 104.64 1.776e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Summary of the preferred (interaction) model.
summary(m1_Perch)
##
## Family: Negative Binomial(1.162)
## Link function: log
##
## Formula:
## catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net,
## k = 10) + mesh_mm + net_type + zone + s(lake_year, bs = "re")
##
## Parametric coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.7456 0.2259 -3.301 0.000964 ***
## mesh_mm8 -0.6091 0.2746 -2.218 0.026557 *
## mesh_mm10 -0.4575 0.2029 -2.255 0.024157 *
## mesh_mm12.5 -0.4990 0.2034 -2.454 0.014142 *
## mesh_mm15.5 -0.4905 0.2372 -2.067 0.038700 *
## mesh_mm19.5 -0.6341 0.2779 -2.282 0.022509 *
## mesh_mm24 -0.8987 0.4785 -1.878 0.060335 .
## mesh_mm29 -0.8387 0.4400 -1.906 0.056645 .
## mesh_mm35 -1.7065 0.6287 -2.714 0.006638 **
## mesh_mm43 -3.1514 0.6924 -4.551 5.33e-06 ***
## net_typeMOD 0.2958 0.1116 2.650 0.008047 **
## zonePelagic -1.5692 0.0588 -26.688 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df Chi.sq p-value
## s(length_cm):mesh_net6.25.CEN 5.069 5.370 54.395 < 2e-16 ***
## s(length_cm):mesh_net8.CEN 5.526 5.873 65.880 < 2e-16 ***
## s(length_cm):mesh_net10.CEN 1.019 1.036 1.495 0.239439
## s(length_cm):mesh_net12.5.CEN 1.000 1.000 0.577 0.447590
## s(length_cm):mesh_net15.5.CEN 1.013 1.026 0.236 0.641245
## s(length_cm):mesh_net19.5.CEN 1.001 1.001 0.492 0.483419
## s(length_cm):mesh_net24.CEN 1.000 1.000 0.699 0.403198
## s(length_cm):mesh_net29.CEN 1.000 1.000 0.621 0.430759
## s(length_cm):mesh_net35.CEN 1.010 1.020 3.491 0.063231 .
## s(length_cm):mesh_net43.CEN 1.856 2.277 10.143 0.009423 **
## s(length_cm):mesh_net6.25.MOD 4.699 4.926 27.235 4.84e-05 ***
## s(length_cm):mesh_net8.MOD 4.196 4.690 24.366 0.000245 ***
## s(length_cm):mesh_net10.MOD 1.984 2.408 5.494 0.093342 .
## s(length_cm):mesh_net12.5.MOD 2.226 2.662 9.753 0.015842 *
## s(length_cm):mesh_net15.5.MOD 1.000 1.001 2.151 0.142537
## s(length_cm):mesh_net19.5.MOD 1.009 1.017 0.827 0.368927
## s(length_cm):mesh_net24.MOD 1.000 1.001 0.003 0.963523
## s(length_cm):mesh_net29.MOD 1.042 1.083 1.589 0.217641
## s(length_cm):mesh_net35.MOD 1.000 1.001 1.148 0.284256
## s(length_cm):mesh_net43.MOD 1.000 1.000 0.004 0.947831
## s(lake_year) 9.734 10.000 932.444 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.00821 Deviance explained = 45%
## -REML = 15658 Scale est. = 1 n = 8887
anova(m0_Perch_Benthic, m1_Perch_Benthic, test = "Chisq")
## Analysis of Deviance Table
##
## Model 1: catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_mm, k = 10) +
## mesh_mm + net_type + s(lake_year, bs = "re")
## Model 2: catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net,
## k = 10) + mesh_mm + net_type + s(lake_year, bs = "re")
## Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1 8237.7 29350
## 2 8217.6 29253 20.151 96.655 5.632e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(m1_Perch_Benthic)
##
## Family: Negative Binomial(1.123)
## Link function: log
##
## Formula:
## catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net,
## k = 10) + mesh_mm + net_type + s(lake_year, bs = "re")
##
## Parametric coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.7525 0.2241 -3.358 0.000785 ***
## mesh_mm8 -0.5976 0.2674 -2.235 0.025420 *
## mesh_mm10 -0.4698 0.1987 -2.364 0.018073 *
## mesh_mm12.5 -0.4870 0.2000 -2.435 0.014882 *
## mesh_mm15.5 -0.5023 0.2414 -2.080 0.037488 *
## mesh_mm19.5 -0.6434 0.2826 -2.277 0.022776 *
## mesh_mm24 -0.8553 0.5329 -1.605 0.108478
## mesh_mm29 -0.8612 0.4442 -1.939 0.052550 .
## mesh_mm35 -1.6884 0.7024 -2.404 0.016232 *
## mesh_mm43 -3.3580 0.7708 -4.357 1.32e-05 ***
## net_typeMOD 0.2982 0.1141 2.613 0.008962 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df Chi.sq p-value
## s(length_cm):mesh_net6.25.CEN 5.088 5.391 55.789 < 2e-16 ***
## s(length_cm):mesh_net8.CEN 5.529 5.878 70.940 < 2e-16 ***
## s(length_cm):mesh_net10.CEN 1.085 1.163 1.724 0.272752
## s(length_cm):mesh_net12.5.CEN 1.000 1.001 0.361 0.547927
## s(length_cm):mesh_net15.5.CEN 1.003 1.007 0.100 0.757052
## s(length_cm):mesh_net19.5.CEN 1.001 1.001 0.447 0.503990
## s(length_cm):mesh_net24.CEN 1.000 1.000 0.373 0.541633
## s(length_cm):mesh_net29.CEN 1.000 1.000 0.656 0.418110
## s(length_cm):mesh_net35.CEN 1.001 1.002 2.542 0.111105
## s(length_cm):mesh_net43.CEN 1.903 2.336 10.003 0.010795 *
## s(length_cm):mesh_net6.25.MOD 4.726 4.937 32.547 4.84e-06 ***
## s(length_cm):mesh_net8.MOD 4.186 4.679 23.243 0.000303 ***
## s(length_cm):mesh_net10.MOD 2.013 2.437 6.492 0.064846 .
## s(length_cm):mesh_net12.5.MOD 2.108 2.523 7.594 0.037575 *
## s(length_cm):mesh_net15.5.MOD 1.000 1.000 2.563 0.109446
## s(length_cm):mesh_net19.5.MOD 1.013 1.027 0.884 0.357124
## s(length_cm):mesh_net24.MOD 1.001 1.001 0.027 0.872354
## s(length_cm):mesh_net29.MOD 1.026 1.051 1.261 0.267926
## s(length_cm):mesh_net35.MOD 1.000 1.001 0.981 0.322294
## s(length_cm):mesh_net43.MOD 1.000 1.001 0.089 0.766586
## s(lake_year) 9.715 10.000 922.456 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.00851 Deviance explained = 39.3%
## -REML = 14739 Scale est. = 1 n = 8283
Predicted catch rate by length and mesh size, CEN vs MOD overlaid with 95% confidence ribbons. Top: both zones combined; bottom: Benthic zone only.
Perch_Selectivity_Plot
Perch_Benthic_Selectivity_Plot
newx_r <- data.frame(
Mean_Weight = seq(min(Data_Roach_LW$Mean_Weight),
max(Data_Roach_LW$Mean_Weight), length.out = 200)
)
lw_pred_r <- bind_cols(
newx_r,
as.data.frame(predict(lw_model_Roach, newdata = newx_r, interval = "confidence"))
) |>
mutate(across(c(fit, lwr, upr), exp))
ggplot(Data_Roach_LW, aes(Mean_Weight, Length)) +
geom_point(alpha = 0.4) +
geom_ribbon(data = lw_pred_r, aes(y = fit, ymin = lwr, ymax = upr), alpha = 0.2) +
geom_line(data = lw_pred_r, aes(y = fit), colour = "blue", linewidth = 1) +
labs(x = "Mean weight (g)", y = "Length (cm)") +
theme_minimal()
Roach_Plot
Roach_NPUE_Plot
anova(m0_roach, m1_roach, test = "Chisq")
## Analysis of Deviance Table
##
## Model 1: catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_mm, k = 10) +
## mesh_mm + net_type + zone + s(lake_year, bs = "re")
## Model 2: catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net,
## k = 10) + mesh_mm + net_type + zone + s(lake_year, bs = "re")
## Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1 4541.5 12038
## 2 4525.9 11898 15.566 139.76 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(m1_roach)
##
## Family: Negative Binomial(5.06)
## Link function: log
##
## Formula:
## catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net,
## k = 10) + mesh_mm + net_type + zone + s(lake_year, bs = "re")
##
## Parametric coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.98171 0.26026 -3.772 0.000162 ***
## mesh_mm8 -0.27092 0.71272 -0.380 0.703855
## mesh_mm10 -0.21403 0.30096 -0.711 0.476986
## mesh_mm12.5 -0.31360 0.26449 -1.186 0.235741
## mesh_mm15.5 -0.39767 0.26611 -1.494 0.135081
## mesh_mm19.5 -0.41152 0.27952 -1.472 0.140951
## mesh_mm24 -0.41438 0.30563 -1.356 0.175153
## mesh_mm29 -0.91348 0.57362 -1.593 0.111272
## mesh_mm35 -1.67499 0.48863 -3.428 0.000608 ***
## mesh_mm43 -2.12976 0.67147 -3.172 0.001515 **
## net_typeMOD 0.08694 0.07908 1.099 0.271604
## zonePelagic -1.25135 0.03286 -38.087 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df Chi.sq p-value
## s(length_cm):mesh_net6.25.CEN 2.638 3.138 9.624 0.024055 *
## s(length_cm):mesh_net8.CEN 5.760 6.000 49.929 < 2e-16 ***
## s(length_cm):mesh_net10.CEN 1.513 1.827 1.027 0.499144
## s(length_cm):mesh_net12.5.CEN 1.000 1.001 0.218 0.640688
## s(length_cm):mesh_net15.5.CEN 1.001 1.002 0.000 0.995988
## s(length_cm):mesh_net19.5.CEN 1.000 1.001 0.060 0.806577
## s(length_cm):mesh_net24.CEN 1.000 1.001 0.044 0.834745
## s(length_cm):mesh_net29.CEN 1.000 1.001 0.962 0.326896
## s(length_cm):mesh_net35.CEN 1.434 1.714 8.114 0.011935 *
## s(length_cm):mesh_net43.CEN 1.038 1.074 4.976 0.027804 *
## s(length_cm):mesh_net6.25.MOD 1.061 1.118 1.153 0.293060
## s(length_cm):mesh_net8.MOD 1.000 1.000 1.183 0.276842
## s(length_cm):mesh_net10.MOD 1.061 1.119 4.573 0.036920 *
## s(length_cm):mesh_net12.5.MOD 2.469 2.886 20.071 0.000183 ***
## s(length_cm):mesh_net15.5.MOD 1.001 1.001 0.307 0.580500
## s(length_cm):mesh_net19.5.MOD 1.000 1.001 0.157 0.692317
## s(length_cm):mesh_net24.MOD 1.000 1.001 0.102 0.749508
## s(length_cm):mesh_net29.MOD 1.000 1.001 0.198 0.656598
## s(length_cm):mesh_net35.MOD 1.000 1.001 0.162 0.687932
## s(length_cm):mesh_net43.MOD 1.001 1.002 0.383 0.536494
## s(lake_year) 1.772 10.000 2.691 0.157122
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.00548 Deviance explained = 58.8%
## -REML = 6015.5 Scale est. = 1 n = 4575
anova(m0_roach_Benthic, m1_roach_Benthic, test = "Chisq")
## Analysis of Deviance Table
##
## Model 1: catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_mm, k = 10) +
## mesh_mm + net_type + s(lake_year, bs = "re")
## Model 2: catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net,
## k = 10) + mesh_mm + net_type + s(lake_year, bs = "re")
## Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1 3042.8 7719.7
## 2 3027.2 7588.5 15.609 131.17 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(m1_roach_Benthic)
##
## Family: Negative Binomial(6.837)
## Link function: log
##
## Formula:
## catch_n ~ offset(log(area_m2)) + s(length_cm, by = mesh_net,
## k = 10) + mesh_mm + net_type + s(lake_year, bs = "re")
##
## Parametric coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.30624 0.27084 -4.823 1.42e-06 ***
## mesh_mm8 0.07232 0.97119 0.074 0.94064
## mesh_mm10 0.07043 0.30911 0.228 0.81977
## mesh_mm12.5 0.05285 0.27772 0.190 0.84909
## mesh_mm15.5 -0.10761 0.28880 -0.373 0.70943
## mesh_mm19.5 -0.06794 0.29522 -0.230 0.81798
## mesh_mm24 -0.05809 0.32807 -0.177 0.85945
## mesh_mm29 -0.68375 0.67200 -1.017 0.30892
## mesh_mm35 -1.38851 0.49934 -2.781 0.00542 **
## mesh_mm43 -2.15278 1.01358 -2.124 0.03367 *
## net_typeMOD 0.12998 0.10733 1.211 0.22592
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df Chi.sq p-value
## s(length_cm):mesh_net6.25.CEN 1.000386 1.001 0.083 0.7738
## s(length_cm):mesh_net8.CEN 4.875079 5.011 51.397 <2e-16 ***
## s(length_cm):mesh_net10.CEN 1.000177 1.000 0.055 0.8156
## s(length_cm):mesh_net12.5.CEN 1.000375 1.001 0.084 0.7725
## s(length_cm):mesh_net15.5.CEN 1.310944 1.531 0.640 0.6468
## s(length_cm):mesh_net19.5.CEN 1.000261 1.001 0.138 0.7104
## s(length_cm):mesh_net24.CEN 1.000235 1.000 0.042 0.8385
## s(length_cm):mesh_net29.CEN 1.000170 1.000 1.007 0.3156
## s(length_cm):mesh_net35.CEN 1.473426 1.766 8.581 0.0102 *
## s(length_cm):mesh_net43.CEN 1.000256 1.001 3.472 0.0625 .
## s(length_cm):mesh_net6.25.MOD 1.291655 1.498 4.603 0.0456 *
## s(length_cm):mesh_net8.MOD 1.000034 1.000 0.506 0.4768
## s(length_cm):mesh_net10.MOD 1.000544 1.001 5.009 0.0253 *
## s(length_cm):mesh_net12.5.MOD 2.286205 2.656 10.495 0.0113 *
## s(length_cm):mesh_net15.5.MOD 1.021073 1.038 0.099 0.7945
## s(length_cm):mesh_net19.5.MOD 1.000489 1.001 0.248 0.6190
## s(length_cm):mesh_net24.MOD 1.000275 1.001 0.143 0.7057
## s(length_cm):mesh_net29.MOD 1.000262 1.001 0.061 0.8057
## s(length_cm):mesh_net35.MOD 1.000159 1.000 0.107 0.7438
## s(length_cm):mesh_net43.MOD 1.000180 1.000 0.005 0.9435
## s(lake_year) 0.001551 10.000 0.000 0.9539
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.00404 Deviance explained = 44.6%
## -REML = 3846.4 Scale est. = 1 n = 3067
Roach_Selectivity_Plot
### Benthic zone
Roach_Benthic_Selectivity_Plot
anova(m0, m1) result in the both-zones
fit against the Benthic-only fit: a net-type-dependent selectivity
smooth (Model 1) that is preferred in both scopes indicates the CEN/MOD
difference is not an artefact of pooling zones; if it’s only preferred
in one scope, the effect is zone-dependent.s(lake_year) and the mesh_net smooths have
fewer effective observations — visible as wider confidence ribbons in
the Benthic-only selectivity plots, particularly at mesh sizes with few
Benthic catches.zone fixed effect is adequately absorbing the
Pelagic/Benthic difference without distorting the CEN vs MOD contrast.
Divergence between the two curve sets at a given mesh size indicates the
selectivity pattern itself differs by zone, which a simple additive
zone term cannot capture.net_typeMOD =
+0.296 (z = 2.65, p = 0.008, exp ≈ 1.34, ~34% higher);
Benthic only net_typeMOD = +0.298 (z = 2.61,
p = 0.009, exp ≈ 1.35, ~35% higher). This consistency indicates
the CEN/MOD catch-rate contrast for Perch holds regardless of zone
scope.zonePelagic = −1.569 (z = −26.7, p < 1
× 10⁻¹⁵⁰) in the both-zones model — Perch catch rate in Pelagic strata
is only ~21% of the Benthic rate. Perch are overwhelmingly a
Benthic-zone catch here, consistent with the Benthic subset retaining
86% of Perch net-records (9,983 / 11,551).zone
removes the single strongest predictor in the both-zones model; this is
not evidence the Benthic-only model fits worse per se, just
that it has less variance to explain.net_typeMOD = +0.087, z = 1.10,
p = 0.27; Benthic only: net_typeMOD = +0.130,
z = 1.21, p = 0.23). The point estimate is larger in
the Benthic-only fit but still non-significant — plausibly reduced power
from the smaller Benthic subset (n drops from 7,628 to 5,246
net-records, a 31% reduction) rather than a genuine zone-dependent
net-type effect.zonePelagic = −1.251 (z = −38.1, p ≈ 0) —
Pelagic catch rate is only ~29% of the Benthic rate.zone term and the smaller sample.mesh_net) is preferred over the simpler shared-smooth
model for both species under both zone scopes.zone
covariate — the both-zones zone fixed effect appears to
adequately absorb the Pelagic/Benthic difference without distorting the
CEN vs MOD contrast.length_cm is set to NA for nets
with catch_n == 0 (see
GAM_size_structure_Clean.R), and mgcv::gam()’s
default na.action = na.omit drops any row with an
NA predictor — so the fitted n (e.g. 8,887 for
m0_Perch) is well below the number of net-records in
dat_perch (11,551). In practice these models compare catch
counts across mesh/net-type combinations where at least one fish was
caught, not full presence/absence across all deployed nets. This is
a pre-existing feature of the data-prep pipeline, not something
introduced by this report — but it should be kept in mind when
describing the models as full negative-binomial catch-rate models.zone term entirely
rather than testing it against a null; they are not nested within the
both-zones models, so the two scopes cannot be compared by a single
likelihood-ratio test — the comparison above is qualitative (coefficient
stability, curve shape, CI width, significance pattern), not a formal
statistical test of “does zone scope matter.”gam.check() k-index/basis-dimension diagnostics
(see GAM_Selectivity_Summary_2026-07-16.txt) should be
checked before treating any single curve as well-resolved.sessionInfo()
## R version 4.6.1 (2026-06-24 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
##
## Matrix products: default
## LAPACK version 3.12.1
##
## locale:
## [1] LC_COLLATE=Portuguese_Portugal.utf8 LC_CTYPE=Portuguese_Portugal.utf8
## [3] LC_MONETARY=Portuguese_Portugal.utf8 LC_NUMERIC=C
## [5] LC_TIME=Portuguese_Portugal.utf8
##
## time zone: Europe/Berlin
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] gratia_0.11.2 mgcv_1.9-4 nlme_3.1-169 lubridate_1.9.5
## [5] forcats_1.0.1 stringr_1.6.0 dplyr_1.2.1 purrr_1.2.2
## [9] readr_2.2.0 tidyr_1.3.2 tibble_3.3.1 ggplot2_4.0.3
## [13] tidyverse_2.0.0
##
## loaded via a namespace (and not attached):
## [1] sass_0.4.10 generics_0.1.4 stringi_1.8.7 lattice_0.22-9
## [5] hms_1.1.4 digest_0.6.39 magrittr_2.0.5 evaluate_1.0.5
## [9] grid_4.6.1 timechange_0.4.0 RColorBrewer_1.1-3 fastmap_1.2.0
## [13] jsonlite_2.0.0 Matrix_1.7-5 ggokabeito_0.1.0 scales_1.4.0
## [17] jquerylib_0.1.4 cli_3.6.6 rlang_1.3.0 splines_4.6.1
## [21] withr_3.0.3 cachem_1.1.0 yaml_2.3.12 otel_0.2.0
## [25] tools_4.6.1 tzdb_0.5.0 nanonext_1.10.1 vctrs_0.7.3
## [29] R6_2.6.1 lifecycle_1.0.5 tweedie_3.1.0 pkgconfig_2.0.3
## [33] pillar_1.11.1 bslib_0.11.0 gtable_0.3.6 Rcpp_1.1.2
## [37] glue_1.8.1 statmod_1.5.2 xfun_0.60 tidyselect_1.2.1
## [41] rstudioapi_0.19.0 knitr_1.51 farver_2.1.2 patchwork_1.3.2
## [45] htmltools_0.5.9 mirai_2.7.1 labeling_0.4.3 rmarkdown_2.31
## [49] compiler_4.6.1 S7_0.2.2 mvnfast_0.2.8