Very low MSE, but negative R^2 [different case than similar questions] This question has been asked before, but I have a specific case I'm curious about. Essentially, I have a very low MSE, but the R^2 turns out to be negative. Even the scatterplot shows that a horizontal line isn't a good fit, so I'm not sure what to make of these results. I used sklearn's Linear Regression object, and calculated "Variance Score" (R^2) with the .score() function with .score(Xtrain, ytrain) for the training set (leftmost plot) and .score(Xtest, ytest) for the testing set (middle plot). 
These are time series predictions btw
Thanks]1
[]2
 A: The $R^2$ value indicates that a null model (horizontal line) is a better fit for the test data than the model you've created in the training data. If you plot the $x=y$ line in your test set graphs, you can see that this line lies almost entirely above the predicted y values. For the null model, roughly half of the predicted values will lie above this line and half will lie below it, even though the predictions are all the same.
There are two aspects here that perhaps need looking at:


*

*The training data and test data appear to be different (the range of y values are certainly very different). Why is this? Should they be expected to be described by the same model? Have they come from the same data generation process?

*Being able to fit the null model for the test data requires knowing the average true y value across the test data. A more appropriate null model in this case would be the average training data y value. Because of the different ranges of the training and test data, your model would likely do much better than this (but remain a bad model for the test data)
The small $MSE$ doesn't indicate much here. The null model would also have a small $MSE$.
