玩命加载中 . . .

关于拟合优度R方的思考


背景

拟合优度,通常也称判定系数,记作$R^2$,是用于评估线性模型拟合优劣的指标。具体地,我们有$n$个$d$维样本组成的数据集$X\in\mathbb{R}^{n\times (d+1)}, \boldsymbol{y}\in\mathbb{R}^n$,由线性模型

其中,$\boldsymbol{w}\in\mathbb{R}^{d+1}$,$\displaystyle X = \begin{bmatrix} 1 & x_{11} & x_{12} &\cdots& x_{1d} \\ 1 & x_{21} & x_{22} & \cdots & x_{2d} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{nd} \end{bmatrix} \in \mathbb{R}^{n\times (d+1)} , \boldsymbol{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} $.

$R^2$与SST、SSE和SSR

记标签向量的均值组成新的向量$\bar{\boldsymbol{y}}$,该向量的每一个分量均为$\bar{y} = \displaystyle \frac{1}{n}\sum_{i=1}^n y_i$.

接下来介绍三个重要概念。

  • SST(Sum of Squares Total,总离差平方和)

  • SSE(Sum of Squared Errors,残差平方和)

  • SSR(Sum of Squares Regression,回归平方和)

于是,拟合优度定义为

注意到在线性回归模型中,如下等式成立

于是拟合优度也可以定义为

由此可见,线性模型下,拟合优度$R^2$取值范围为$[0,1]$.

证明SST=SSE+SSR

先整理SST:

再整理SSE+SSR:

故有

下面证明$(\hat{\boldsymbol{y}} - \bar{\boldsymbol{y}})^T(\boldsymbol{y} - \hat{\boldsymbol{y}})=0$.

要证明上式,我们需要回到线性回归模型求解最优参数的问题中:

对目标函数求导数得

为求得最优参数$\boldsymbol{w}_*$,令上式为0,得

由$\hat{\boldsymbol{y}} = X\boldsymbol{w}_*$,重写为

上述等式非常关键。首先,等式两边同时乘以$\boldsymbol{w}^T$得

其次,对于$X^T$中的首行$X^T_{1,:}=[1,1,\dots,1] = \boldsymbol{1}^T$,有

于是我们得到:

证毕.

后记

有时候跑实验会发现,拟合优度$R^2$为负值,这和上面的理论推导矛盾了。注意,等式$SST=SSE+SSR$成立的重要前提是模型为线性的(线性回归模型),此时,$R^2$的两个定义才都成立,其取值范围才是$[0,1]$;否则,该等式不成立,其取值范围也不再是$[0, 1]$。若模型为非线性模型(如高度非线性的神经网络),使用$R^2$作为评估指标很有可能出现负值,也失去了评估意义。

参考

  1. $R^2$为负值的解释
  2. 对等式SST=SSE+SSR的证明
  3. 二范数求导

文章作者: 鹿卿
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 鹿卿 !
评论
Powered By Valine
v1.5.2