通过线性回归得到回归参数后,可以通过计算判定系数
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=1−SSTSSE
其中,
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=1∑n(y^i−yˉ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=1∑n(yi−y^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=1∑n(yi−yˉ)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=1∑n(yi−yˉ)2=i=1∑n(y^i−yˉi)2+i=1∑n(yi−y^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=1∑nθ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=1∑nθ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}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧⎣⎢⎢⎢⎡11⋮1x11x21xm1x12x22xm2………x1nx2nxmn⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡θ0θ1⋮θn⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡y^1y^2⋮y^m⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡y1y2⋮ym⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡y^1y^2⋮y^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
ϵ=Y−Xθ,得:
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(Y−Xθ)=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^。投影矩阵有两个性质需要了解:
-
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 -
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
1∈Rm):
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=1∑n(yi−yˉ)2=i=1∑n[(yi−y^i)+(y^i−yˉ)]2=i=1∑n(y^i−yˉi)2+i=1∑n(yi−y^i)2+i=1∑n2(yi−y^i)(y^i−yˉ)=i=1∑n(y^i−yˉi)2+i=1∑n(yi−y^i)2+i=1∑n2(yi−y^i)(y^i−yˉ)=i=1∑n(y^i−yˉi)2+i=1∑n(yi−y^i)2+2ϵ(Y^−Yˉ1)=i=1∑n(y^i−yˉi)2+i=1∑n(yi−y^i)2+2ϵ(PY−Yˉ1)=i=1∑n(y^i−yˉi)2+i=1∑n(yi−y^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=xi0∈Rm(
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=1∑n(y^i−yˉi)2+i=1∑n(yi−y^i)2+2ϵTY^−2YˉϵT1=SSR+SSE