判定系数推导 — Coefficient of Determination Derivation

通过线性回归得到回归参数后,可以通过计算判定系数 R 2 R^2 R2来评估回归函数的拟合优度。判定系数 R 2 R^2 R2定义如下:
R 2 = S S R S S T = 1 − S S E S S T R^2 = \frac {SSR}{SST} = 1 - \frac {SSE}{SST} R2=SSTSSR=1SSTSSE
其中, S S R = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 SSR = \sum\limits_{i=1}^n (\hat y_i - \bar y_i)^2 SSR=i=1n(y^iyˉi)2 S S E = ∑ i = 1 n ( y i − y ^ i ) 2 SSE = \sum\limits_{i=1}^n (y_i - \hat y_i)^2 SSE=i=1n(yiy^i)2 S S T = ∑ i = 1 n ( y i − y ˉ ) 2 SST = \sum\limits_{i=1}^n (y_i - \bar y)^2 SST=i=1n(yiyˉ)2 R 2 R^2 R2越接近1,回归函数的拟合优度越大。上式可改写成 S S T = S S R + S S E SST = SSR + SSE SST=SSR+SSE,即:
∑ i = 1 n ( y i − y ˉ ) 2 = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 \sum\limits_{i=1}^n (y_i - \bar y)^2 = \sum\limits_{i=1}^n (\hat y_i - \bar y_i)^2 + \sum\limits_{i=1}^n (y_i - \hat y_i)^2 i=1n(yiyˉ)2=i=1n(y^iyˉi)2+i=1n(yiy^i)2

为了理解 R 2 R^2 R2,我们有必要先回顾一下线性回归的通式:
{ y ^ i = f ( x ) = θ 0 + ∑ j = 1 n θ j x i j y i = y ^ i + ϵ i \begin{cases} \hat y_i = f(x) = \theta_0 + \sum\limits_{j=1}^n \theta_j x_i^j \\ y_i = \hat y_i + \epsilon_i \end{cases} y^i=f(x)=θ0+j=1nθjxijyi=y^i+ϵi
其中, y i y_i yi实际上由 y ^ i \hat y_i y^i ϵ i \epsilon_i ϵi组成, y ^ i \hat y_i y^i x i x_i xi变化而变化。令 x i 0 = 1 x_i^0 = 1 xi0=1 y ^ i = θ 0 + ∑ j = 1 n θ j x i j \hat y_i = \theta_0 + \sum\limits_{j=1}^n \theta_j x_i^j y^i=θ0+j=1nθjxij可被改写成 y ^ i = θ T x i \hat y_i = \theta^Tx_i y^i=θTxi。将上式改写成向量和矩阵的形式:
{ [ 1 x 1 1 x 1 2 … x 1 n 1 x 2 1 x 2 2 … x 2 n ⋮ 1 x m 1 x m 2 … x m n ] [ θ 0 θ 1 ⋮ θ n ] = [ y ^ 1 y ^ 2 ⋮ y ^ m ] [ y 1 y 2 ⋮ y m ] = [ y ^ 1 y ^ 2 ⋮ y ^ m ] + [ ϵ 1 ϵ 2 ⋮ ϵ m ] \begin{cases} \begin{bmatrix} 1 & x_1^1 & x_1^2 & \dots & x_1^n \\ 1 & x_2^1 & x_2^2 & \dots & x_2^n \\ \vdots \\ 1 & x_m^1 & x_m^2 & \dots & x_m^n \\ \end{bmatrix} \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{bmatrix} = \begin{bmatrix} \hat y_1 \\ \hat y_2 \\ \vdots \\ \hat y_m \end{bmatrix} \\ \\ \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{bmatrix} = \begin{bmatrix} \hat y_1 \\ \hat y_2 \\ \vdots \\ \hat y_m \end{bmatrix} + \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_m \end{bmatrix} \end{cases} 111x11x21xm1x12x22xm2x1nx2nxmnθ0θ1θn=y^1y^2y^my1y2ym=y^1y^2y^m+ϵ1ϵ2ϵm
θ ≠ 0 \theta \neq \mathbf 0 θ̸=0时, Y ^ \hat Y Y^ X X X的一个线性组合,即 Y ^ \hat Y Y^存在于由 X X X的列向量所展开的列空间中。对于一次幂的线形回归, X X X的列空间即是一个超平面, Y ^ \hat Y Y^是存在于面内的一个向量(即 Y Y Y在面上的投影)。为了使得残差最小化, ϵ \epsilon ϵ Y Y Y垂直于面方向上的投影。在三维中的几何意义如下图(文中 θ \theta θ即图中 β \beta β,图中 X i X_i Xi表示列向量,图取自):

在这里插入图片描述

因为 ϵ \epsilon ϵ垂直于 X X X的列空间,所以 ϵ \epsilon ϵ垂直于 X X X的所有列向量,即 X T ϵ = 0 X^T \epsilon = \mathbf 0 XTϵ=0。又因 ϵ = Y − X θ \epsilon = Y - X\theta ϵ=YXθ,得:
X T ( Y − X θ ) = 0 X T Y = X T X θ θ = ( X T X ) − 1 X T Y Y ^ = X θ = X ( X T X ) − 1 X T Y X^T(Y - X\theta) = \mathbf 0 \\ X^TY = X^TX\theta \\ \theta = (X^TX)^{-1}X^TY \\ \hat Y = X\theta = X(X^TX)^{-1}X^TY XT(YXθ)=0XTY=XTXθθ=(XTX)1XTYY^=Xθ=X(XTX)1XTY
根据 Y ^ = X θ = X ( X T X ) − 1 X T Y \hat Y = X\theta = X(X^TX)^{-1}X^TY Y^=Xθ=X(XTX)1XTY,我们得到了投影矩阵 P = X ( X T X ) − 1 X T P = X(X^TX)^{-1}X^T P=X(XTX)1XT Y ^ = P Y \hat Y = PY Y^=PY,投影矩阵 P P P乘以 Y Y Y得到了 Y Y Y属于 X X X列空间的分量 Y ^ \hat Y Y^。投影矩阵有两个性质需要了解:

  1. P P P是对称矩阵;
    P T = ( X ( X T X ) − 1 X T ) T = X ( ( X T X ) − 1 ) T X T = X ( ( X T X ) T ) − 1 X T = X ( X T X ) − 1 X T = P P^T = (X(X^TX)^{-1}X^T)^T = X((X^TX)^{-1})^TX^T = X((X^TX)^T)^{-1}X^T = X(X^TX)^{-1}X^T = P PT=(X(XTX)1XT)T=X((XTX)1)TXT=X((XTX)T)1XT=X(XTX)1XT=P
  2. P 2 = P P^2 = P P2=P
    P 2 = P T P = X ( X T X ) − 1 X T X ( X T X ) − 1 X T = X ( X T X ) − 1 X T X ( X T X ) − 1 ⏞ X T = X ( X T X ) − 1 X T = P P^2 = P^TP = X(X^TX)^{-1}X^TX(X^TX)^{-1}X^T = X(X^TX)^{-1} \overbrace{X^TX(X^TX)^{-1}}X^T = X(X^TX)^{-1}X^T = P P2=PTP=X(XTX)1XTX(XTX)1XT=X(XTX)1XTX(XTX)1 XT=X(XTX)1XT=P

现在,我们可以开始推导判定系数公示 S S T = S S R + S S E SST = SSR + SSE SST=SSR+SSE了。如下( 1 ∈ R m \mathbf 1 \in R^m 1Rm):
S S T = ∑ i = 1 n ( y i − y ˉ ) 2 = ∑ i = 1 n [ ( y i − y ^ i ) + ( y ^ i − y ˉ ) ] 2 = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 + ∑ i = 1 n 2 ( y i − y ^ i ) ( y ^ i − y ˉ ) = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 + ∑ i = 1 n 2 ( y i − y ^ i ) ( y ^ i − y ˉ ) = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 + 2 ϵ ( Y ^ − Y ˉ 1 ) = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 + 2 ϵ ( P Y − Y ˉ 1 ) = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 + 2 ϵ T Y ^ − 2 Y ˉ ϵ T 1 \begin{aligned} & SST = \sum\limits_{i=1}^n (y_i - \bar y)^2 = \sum\limits_{i=1}^n [(y_i - \hat y_i) + (\hat y_i - \bar y)]^2 \\ & = \sum\limits_{i=1}^n (\hat y_i - \bar y_i)^2 + \sum\limits_{i=1}^n (y_i - \hat y_i)^2 + \sum\limits_{i=1}^n 2(y_i - \hat y_i)(\hat y_i - \bar y) \\ & = \sum\limits_{i=1}^n (\hat y_i - \bar y_i)^2 + \sum\limits_{i=1}^n (y_i - \hat y_i)^2 + \sum\limits_{i=1}^n 2(y_i - \hat y_i)(\hat y_i - \bar y) \\ & = \sum\limits_{i=1}^n (\hat y_i - \bar y_i)^2 + \sum\limits_{i=1}^n (y_i - \hat y_i)^2 + 2\epsilon(\hat Y -\bar Y\mathbf 1) \\ & = \sum\limits_{i=1}^n (\hat y_i - \bar y_i)^2 + \sum\limits_{i=1}^n (y_i - \hat y_i)^2 + 2\epsilon(PY -\bar Y\mathbf 1) \\ & = \sum\limits_{i=1}^n (\hat y_i - \bar y_i)^2 + \sum\limits_{i=1}^n (y_i - \hat y_i)^2 + 2\epsilon^T\hat Y - 2\bar Y\epsilon^T\mathbf 1 \end{aligned} SST=i=1n(yiyˉ)2=i=1n[(yiy^i)+(y^iyˉ)]2=i=1n(y^iyˉi)2+i=1n(yiy^i)2+i=1n2(yiy^i)(y^iyˉ)=i=1n(y^iyˉi)2+i=1n(yiy^i)2+i=1n2(yiy^i)(y^iyˉ)=i=1n(y^iyˉi)2+i=1n(yiy^i)2+2ϵ(Y^Yˉ1)=i=1n(y^iyˉi)2+i=1n(yiy^i)2+2ϵ(PYYˉ1)=i=1n(y^iyˉi)2+i=1n(yiy^i)2+2ϵTY^2YˉϵT1
因为 ϵ \epsilon ϵ垂直于 X X X的列空间,且 Y ^ \hat Y Y^属于 X X X的列空间,所以 ϵ T Y ^ = 0 \epsilon^T \hat Y = 0 ϵTY^=0;又因为 1 = x i 0 ∈ R m \mathbf 1 = x_i^0 \in R^m 1=xi0Rm 1 \mathbf 1 1属于 X X X的列空间),所以 ϵ T 1 = 0 \epsilon^T \mathbf 1 = 0 ϵT1=0。因此:
S S T = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 + 2 ϵ T Y ^ − 2 Y ˉ ϵ T 1 = S S R + S S E SST = \sum\limits_{i=1}^n (\hat y_i - \bar y_i)^2 + \sum\limits_{i=1}^n (y_i - \hat y_i)^2 + 2\epsilon^T\hat Y - 2\bar Y\epsilon^T\mathbf 1 = SSR + SSE SST=i=1n(y^iyˉi)2+i=1n(yiy^i)2+2ϵTY^2YˉϵT1=SSR+SSE

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值