# Interpreting a pattern in a residual plot produced by gam.check()

I'm working on creating a model that examines the effect of ocean characteristics on fishing outcomes. I have spatial data on a 0.5 degree grid and I created the following model:

gam(inverse hyperbolic sine(yvar) ~ s(lat, lon, bs="sos") + s(xvar1) +
s(xvar2) + s(xvar3), data = dat, method = "REML")


The QQ plot and histogram of residuals look okay. However, gam.check() produces an odd pattern in the residuals plot. I know that the points should be scattered around 0, but I have a very odd pattern in the residuals. Can anyone provide some insight on the interpretation of this pattern?

A similar question on Cross Validated had a solution suggesting the person asking the question try a Poisson model. I tried this and the fit of the model became much worse.

• Describe your response variable. It looks like you perhaps have a zero-inflated continuous response (or maybe it's discrete but with a very large mean). Why are you using an arcsinh transformation? Why did you write inverse hyperbolic sine in words inside code? Oct 22, 2019 at 1:10
• The R code is a bit weird, missing a " in 'bs="sos' and a bracket. Seems like the prediction is always higher than your observed value? Like @Glen_b mentioned, if you have a lot of zeros, this would be part of the reason, but there's something about the formula that gives you this kind of plot.. Oct 22, 2019 at 11:00