# Tilted rectangle in residuals vs fitted plot

When performing diagnostics on an OLS model, what can make a plot of the predicted responses vs the residuals. Ideally we want a horizontal rectangle shape. But what does it mean when the plot is a tilted rectangle? Some books like Draper and Smith say this indicates an error in the analysis, but they do not elaborate on what this means. Can someone explain what we can infer from this particular case?

• Also here's a link to the figure @gung 's link is referring to: cran.r-project.org/doc/contrib/Faraway-PRA.pdf (page 81). – Stefan Dec 17 '15 at 17:08
• Small point, but possibly helpful for searches: I'd regard residual vs fitted as the more common (indeed standard) name for this. On the answer, I think conical, curved, grouped, striped, truncated and outlier patterns summarize much of what can be interpreted. I'd welcome additions. – Nick Cox Dec 17 '15 at 18:09

Most of what you need to know about interpreting a residuals vs predicted plot can be learned from Interpreting the residuals vs. fitted values plot for verifying the assumptions of a linear model.

The tilted rectangle shape is extremely uncommon. Most people will never see one. It can occur if the model is badly misspecified. OLS should fit a line through your data. In order for all the data at one end to be above the fitted line and all the data at the other end below it, you need to force constraints on the fit that badly misspecify the model. The most common such constraint will be suppressing the intercept (this is something you should never do anyway; see: When is it OK to remove the intercept in lm()?, & When forcing intercept of 0 in linear regression is acceptable/advisable). It may be possible to do a comparably bad job of misspecifying the model in a Bayesian context when the prior for a variable is very far from the truth and too narrow, but I suspect that will be less common than suppressing the intercept. Consider this simple example (coded in R):

set.seed(1508)                    # this makes the example exactly reproducible
x = runif(100, min=5, max=15)     # there is no relationship b/t x & y
y = 5 + rnorm(100, mean=0, sd=1)  #  y is simply shifted vertically from 0
m = lm(y~0+x)                     # the model is fit w/o an intercept
windows(width=7, height=3.5)
layout(matrix(1:2, nrow=1))
plot(x, y, main="Plot of raw data", ylim=c(0,8))