最近在用工具变量的时候,遇到了一件怪事,系统自动输出的(outreg2 )的拟合优度R2是负数
由此开始了我对于,拟合优度R2什么时候可能是负数,这个问题的探索
最终的结论是:
1. 没有常数项/截距项等 进行的回归,比如OLS,其拟合优度R2 有可能出现负数的情况
2. 两阶段工具变量回归的时候,拟合优度R2 有可能出现负数的情况
如果你发现自己的拟合优度R2出现了负数,但是却不属于上面这两种情况,请联系我。或者你自查一下,可能90%是你的错误,就是很低级的typo。
那么先说了结论,原理是什么呢?参考本论坛着这一篇帖子
https://bbs.pinggu.org/thread-1319019-1-1.html
R2 = MSS/TSS = (TSS-RSS)/TSS = 1- RSS/TSS
只有当RSS很大,且大于TSS的时候才能使得R2出现负数。TSS代表用y bar样本均值进行拟合的残差平方和,RSS代表用回归模型拟合的残差平方和。
针对第一个结论:
只有当模型的拟合能力,还不如y bar这个样本均值的时候,才有可能出现RSS 大于 TSS的情况。
一般来说,y bar其实就是一个常数,因此如果回归模型中加入了常数项的时候,那么这个模型的能力的拟合能力是不会小于y bar的拟合能力的。所以如果模型去掉了截距项,那么就有可能出现R2为负数的情况。
针对第二个结论:
这个和两阶段工具变量计算R2的方法有关。在2sls方法中,我们利用工具变量拟合的内生变量,带入第二阶段中得到估计系数。但是RSS的计算是使用真实的内生变量的值的,所以相当于计算了一个怪怪得,没有进行最小化均方误差的优化过程的拟合优度,所以有可能出现问题。
以上。
另外,当实证模型中变量个数过多的时候,可以参考使用adjusted R2,但如果出现负数,解释原理和上文一致。