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?

residuals-vs-fitted plot showing a downsloping point cloud with a line of points forming a lower boundary to the cloud, and some increasing spread with mean, almost like a footprint pressed against a wall

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.

  • 1
    $\begingroup$ 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? $\endgroup$
    – Glen_b
    Oct 22, 2019 at 1:10
  • $\begingroup$ 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.. $\endgroup$
    – StupidWolf
    Oct 22, 2019 at 11:00

1 Answer 1


Those will be either all the 0s (most likely) or 1s/smallest value in your original data. You don’t say what these data are but as you mentioning fishing outcomes it is highly likely that these have some natural lower bound and this line in the residuals are all the observations that take this lower bound (before transformation).

As you don’t exactly what your data are it is difficult to comment further as to how to proceed (this may not be an issue or you may need to not use the transform that you did, and instead use a GLM or other non-Gaussian response), but

  1. Such patterns are common in ecological/biological data, and
  2. Transforming your response invariably doesn’t work for ecological data.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.