# GAM partial response plot interpretation

I've made the gam in the code below (in R), but I'm struggling to interpret the results. Specifically, the partial response plots for all but one of the variables is linear, and the CI lines cross in the middle. I've done some looking around and can't find out what this means.

Given these plots, is this model valid? Is there something wrong with the model? If so, how would I make a correction?

Here's the partial response plots:

the output figures of gam.check (the residuals passed a normality check, just fyi)

and the model code with a summary()

cpue.GAM <- gam(CPUE ~
s(CHL) +
s(BEUTI) +
s(PDO) +
s(SST) +
s(HCI) +
s(ONI) +
s(NPP),
data = master2,
method = "REML")

> summary(cpue.GAM)

Family: gaussian

Formula:
CPUE ~ s(CHL) + s(BEUTI) + s(PDO) + s(SST) + s(HCI) + s(ONI) +
s(NPP)

Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)   5.7861     0.2406   24.05   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
edf Ref.df      F p-value
s(CHL)   1.000  1.000  2.985 0.08964 .
s(BEUTI) 1.000  1.000 12.379 0.00088 ***
s(PDO)   1.000  1.000  0.788 0.37868
s(SST)   1.000  1.000  6.543 0.01331 *
s(HCI)   2.021  2.564  2.104 0.10650
s(ONI)   1.000  1.000  3.901 0.05327 .
s(NPP)   1.000  1.000  1.499 0.22603
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.337   Deviance explained = 42.1%
-REML = 132.26  Scale est. = 3.7038    n = 64

• The main issue is that your model is way too complex for the small number of observations you have. Even if you had fit a purely linear model instead of a GAM, I would say this. Also, have you checked for multicollinearity? Commented May 31, 2023 at 6:23
• I believe the CI lines cross because the smoothers are centered. Commented May 31, 2023 at 6:24
• Thanks for the help Roland! Yes I did a check for multicollinearity, 2 were collinear so I removed the one that was the least important biologically. The full model originally had more variables, but I reduced model complexity by forward stepwise selection. I've tried setting select = T to reduce the number of variables internally, but that reduced model fit (deviance explained) by 10% and didn't solve the linear figures w/ crossing CI lines issue. I'll try reducing model complexity manually and see what happens. Commented May 31, 2023 at 7:31