I am doing a multiple linear regression on a set of variables (observations over time). As commonly observed, my model underestimates high values and overestimates low values of the dependent variable $y$. This is clearly seen when I order $y$ (thus, lose the time structure), and plot it with the predicted values (ordered with respect to the ordering of $y$, not losing the "pairs"). In blue are the observed $y$ and in red is the predicted outcome.
The under/overestimation is clear, as the two newly fitted lines have different inclinations. A simple way to correct this bias would be to add to the slope of the red line, so that it equals the slope of the blue line:
The correlation between $y$ and predicted values substantially increases.
I understand that adding independent variables in one's linear model, that do not correlate with your dependent variable, would cause a model to predict its mean - therefore over- and underestimating its low and high values, respectively. I also understand that this phenomenon has nothing to do with the behavior of the residuals, as pointed out in this post, for example. My residuals before correction look fine:
Also after correction (maybe a bit more correlated):
How can I interpret the need for this apparently linear bias, in my linear model? Is it fine to apply the same bias correction, when using this model for predictions? Any insights and clarifications are very welcome.