回归问题中R方可以小于0吗?

  统计/机器学习 回归分析 模型验证    浏览次数:16272        分享
3

我对我的预测结果计算了R方,发现小于0。我印象中R方的取值是0到1,难道R方可以小于0吗?


 

姜金杰   2018-05-08 10:29



   4个回答 
13

R方可以是负数。如果拟合结果比平均值好,就是正数,比平均值差就是负数。

$$R^2=1-\frac{\sum_{i=1}^ne_i^2}{\sum_{i=1}^n(y_i-\bar y)^2}$$

如果我们用均值表示我们的预测值,那么残差$e_i=y_i-\bar y$,所以此时$R^2=0$。如果拟合度比均值还差,也就是$e_i^2 > (y_i-\bar y)^2$,那么$R^2$自然就是负数了。

SofaSofa数据科学社区DS面试题库 DS面经

淡淡的   2019-04-09 11:50

7

当然可以是负的,如果你用平均值取拟合,那么$R^2=0$;如果拟合效果比平均值还差,那么$R^2<0$。


SofaSofa数据科学社区DS面试题库 DS面经

数据痴汉   2018-05-10 00:59

3

可以。记得在回归时如果不添加常数项有可能出现这种情况。

SofaSofa数据科学社区DS面试题库 DS面经

s3040608090   2018-05-24 13:45

2

如果是用的线性回归模型,理论上不会出现$R^2<0$,最差不过接近于0。

但是使用一些其他方法做回归预测,可能会导致$R^2<0$,比如一个非常过拟合的xgboost之类的;或者当算法的优化函数不是RMSE,比如log后的回归,或者huber回归,也是有可能导致$R^2<0$的。

SofaSofa数据科学社区DS面试题库 DS面经

kym1990   2022-04-02 23:07



  相关讨论

修正R方(adjusted R square)是什么?

除了RMSE,评价回归模型有哪些常用的metric?

评价回归模型的RMSLE是什么?

精度-召回曲线的起点和终点是什么?

十折交叉验证

测试集和验证集的区别?

如果我用交叉验证,还是否需要单独分出测试集?

K折交叉验证是否有意义?

交叉验证是如何进行的?

回归问题中的stratified cross validation?

  随便看看

plt.scatter plot怎么让不同的类别有不同的颜色

怎么在jupyter notebook里查看python的版本?

python里清除已经定义过的变量

推荐开放数据库

协方差矩阵一定是半正定的吗?