Why does my model $R^2$ drop when the intercept term is removed? I ran an Ordinary Least Squares model and found the constant/intercept is more significant than all the other features. When the intercept is included, the $R^2$ is 45%. When I remove the intercept, the $R^2$ drops to 29%. 
The intercept also has the lowest p-value compared to all the other features.
Moreover, I used StandardScaler to scale the features used. 
Why would the intercept be so significant?
Example code:
model_2 = sm.OLS(df_reg_y.astype(float), sm.add_constant(X_scaled.astype(float))).fit()
This area circled in purple is the scatter plot of the target variable vs the most significant feature. The histogram below it is the distribution of the target variable. 

Edit: I realized that I forgot to scale the target variable. The issue was fixed after I scaled the features and target variable together. 
 A: Noting this in an answer as it solved the problem and the community has voted to keep the question open: 
The intercept is significant because the mean value of the response is detectably greater than zero. As you discovered, if you rescale the response variable by subtracting the mean, the intercept will be zero and no longer significant in subsequent analyses. And the $R^2$ will be identical for models with and without the intercept term.
A: The intercept is there to account for the mean value of your dependent variable. By setting the intercept to 0, you are biasing your estimator, i.e. making the mean of the error different from 0.
The R squared is sensitive to this bias change. If you want a measure for the goodness of fit that only considers variance (is insensitive to bias) and behaves like R squared, you can go for explained variance.
In other words, R squared is a summary statistic, but it does not tell you whether it is your bias or your variance that is restricting the goodness of your fit.
