nonsensical intercepts for regression models Let’s say that I have performances in 9 sports as predictor variables and the total points of those sports as the DV. So I am making three regression models(non-nested) with three predictors each (every model has three different sports) to see which one of the models are better at predicting the overall score. My issue is that the intercepts are going bananas.  As you can see the intercept for my first model is negative, and it cannot be negative as it’s overall points. The second model has an enormous intercept much higher than the maximum value of my DV on the data. How can I interpret the negative intercept in one model and the enormous intercept on the other?
 A: Linear regression is
$$
y = \text{intercept} + \text{coefficients} \times \text{features} + \varepsilon
$$
If $\text{coefficients} \times \text{features}$ is high, then the intercept would need to be low enough to align the result with the predicted values, and if $\text{coefficients} \times \text{features}$ is small, the intercept would need to be bigger. So you cannot interpret any of the parameters independently of the others. In your example, you can easily see how intercept goes smaller when the parameter for Highjump is large in the first model, while is large for the other models, that have small coefficients.
The size of the intercept depends both on the variability of the predicted values, but also on the variability of the features. You can easily see this by re-scalling any of them (e.g. dividing by some large number).
A: A bit late to the party but I wanted to clarify that the intercepts in your models have different interpretations, as follows. 
model1 <- lm(Totalpoints~m400 + m1500 + m100 + m110hurdles, data = samp1)
The intercept for model1 represents the total points predicted by the model for a randomly selected athlete from your target population of athletes for whom m400 = 0, m1500 = 0, m100 = 0 and m110hurdles = 0.
model2 <- lm(Totalpoints ~ Polevault + Highjump + Longjump, data = samp1)
The intercept for model2 represents the total points predicted by the model for a randomly selected athlete from your target population of athletes for whom Polevault = 0, Highjump = 0 and Longjump = 0.
model3 <- lm(Totalpoints ~ Shotput + Discus + Javelin, data = samp1)
The intercept for model3 represents the total points predicted by the model for a randomly selected athlete from your target population of athletes for whom Shotput = 0, Discus = 0 and Javelin = 0.
These interpretations may not be meaningful in real life if the value 0 falls outside the range of observed values for each (or at least some) of your predictor variables. You can make them meaningful by centering your predictor variables around their mean or median values observed in your sample (whichever makes most sense). For example:
samp1$ShotputCen <- samp1$Shotput - mean(samp1$Shotput, na.rm = TRUE)

samp1$DiscusCen <- samp1$Discus - mean(samp1$Discus, na.rm = TRUE)

samp1$JavelinCen <- samp1$Javelin - mean(samp1$Javelin, na.rm = TRUE)

model3Cen <- lm(Totalpoints ~ ShotputCen + DiscusCen + JavelinCen, data = samp1)

summary(model3Cen)

The intercept for model3Cen represents the total points predicted by the model for a randomly selected athlete from your target population of athletes for whom ShotputCen = 0, DiscusCen = 0 and JavelinCen = 0. In other words, it represents the total points predicted by the model for an athlete with typical (i.e., average) values for Shotput, Discus and Javelin. 
