非线性模型
多项式回归
y i = β 0 + β 1 x i + β 2 x i 2 + β 3 x i 3 + ⋯ + β d x i d + ε i y_i=\beta_0+\beta_1x_i+\beta_2x_i^2+\beta_3x_i^3+\cdots+\beta_dx_i^d+\varepsilon_i yi=β0+β1xi+β2xi2+β3xi3+⋯+βdxid+εi
假设阶数为4,则在
x
0
x_0
x0 处的拟合值为:
f
^
(
x
0
)
=
β
^
0
+
β
^
1
x
0
+
β
^
2
x
0
2
+
β
^
3
x
0
3
+
β
^
4
x
0
4
\hat f(x_0)=\hat\beta_0+\hat\beta_1x_0+\hat\beta_2x_0^2+\hat\beta_3x_0^3+\hat\beta_4x_0^4
f^(x0)=β^0+β^1x0+β^2x02+β^3x03+β^4x04
最小二乘法可以得到每个系数
β
^
i
\hat\beta_i
β^i 的方差估计以及每一对系数估计值之间的协方差,通过这些值可以计算得到
f
^
(
x
0
)
\hat f(x_0)
f^(x0) 的方差,这样
f
^
(
x
0
)
\hat f(x_0)
f^(x0) 的逐点标准误差就是其方差的平方根。在每一个点计算相应位置的标准误差,然后画出拟合值曲线以及距拟合值曲线的两倍标准误差的曲线:
f
^
(
x
0
)
±
2
⋅
s
e
[
f
^
(
x
0
)
]
\hat f(x_0)\pm2·se[\hat f(x_0)]
f^(x0)±2⋅se[f^(x0)]。
可以将d固定在一些合理的低值,也可以通过交叉验证来选择d。
阶梯函数
把 X X X 的取值范围分成一些区间,每个区间拟合一个不同的常数。
具体的,在
X
X
X 取值空间上创建分割点
c
1
,
c
2
,
⋯
,
c
K
c_1,c_2,\cdots,c_K
c1,c2,⋯,cK,然后构造
K
+
1
K+1
K+1 个新变量:
C
0
(
X
)
=
I
(
X
<
c
1
)
C
1
(
X
)
=
I
(
c
1
≤
X
<
c
2
)
C
2
(
X
)
=
I
(
c
2
≤
X
<
c
3
)
⋮
C
K
−
1
(
X
)
=
I
(
c
K
−
1
≤
X
<
c
K
)
C
K
(
X
)
=
I
(
c
K
≤
X
)
C_0(X)=I(X<c_1)\\C_1(X)=I(c_1\leq X<c_2)\\C_2(X)=I(c_2\leq X<c_3)\\\vdots\\C_{K-1}(X)=I(c_{K-1}\leq X<c_K)\\C_K(X)=I(c_K\leq X)
C0(X)=I(X<c1)C1(X)=I(c1≤X<c2)C2(X)=I(c2≤X<c3)⋮CK−1(X)=I(cK−1≤X<cK)CK(X)=I(cK≤X)
其中
I
(
⋅
)
I(·)
I(⋅) 是示性函数,条件成立时返回1否则返回0。由于
X
X
X 只能落在
K
+
1
K+1
K+1 个区间中的某一个,于是对于任意的
X
X
X 的取值,
C
0
(
X
)
+
C
1
(
X
)
+
⋯
+
C
K
(
X
)
=
1
C_0(X)+C_1(X)+\cdots+C_K(X)=1
C0(X)+C1(X)+⋯+CK(X)=1。以
C
0
(
X
)
,
C
1
(
X
)
,
⋯
,
C
K
(
X
)
C_0(X),C_1(X),\cdots,C_K(X)
C0(X),C1(X),⋯,CK(X) 为预测变量用最小二乘法来拟合线性模型:
y
i
=
β
0
+
β
1
C
1
(
x
i
)
+
β
2
C
2
(
x
i
)
+
⋯
+
β
K
C
K
(
x
i
)
+
ε
i
y_i=\beta_0+\beta_1C_1(x_i)+\beta_2C_2(x_i)+\cdots+\beta_KC_K(x_i)+\varepsilon_i
yi=β0+β1C1(xi)+β2C2(xi)+⋯+βKCK(xi)+εi
对于
X
X
X 的一个给定值,
C
1
(
X
)
,
C
2
(
X
)
,
⋯
,
C
K
(
X
)
C_1(X),C_2(X),\cdots,C_K(X)
C1(X),C2(X),⋯,CK(X) 中至多只有一项系数非零。当
X
<
c
1
X<c_1
X<c1 时,
β
0
\beta_0
β0 即为
X
<
c
1
X<c_1
X<c1 时的
Y
Y
Y 的平均值。当
c
j
<
X
<
c
j
+
1
c_j<X<c_{j+1}
cj<X<cj+1 时,预测值为
β
0
+
β
j
\beta_0+\beta_j
β0+βj,
β
j
\beta_j
βj 可被解释为当
X
X
X 由
X
<
c
1
X<c_1
X<c1 增至
c
j
<
X
<
c
j
+
1
c_j<X<c_{j+1}
cj<X<cj+1 时响应变量的平均增量。
是一种构造易于解释的交互项的有用方法。
基函数
多项式和阶梯函数回归模型实际上是特殊的基函数方法,以模型
y
i
=
β
0
+
β
1
b
1
(
x
i
)
+
β
2
b
2
(
x
i
)
+
⋯
+
β
K
b
K
(
x
i
)
+
ε
i
y_i=\beta_0+\beta_1b_1(x_i)+\beta_2b_2(x_i)+\cdots+\beta_Kb_K(x_i)+\varepsilon_i
yi=β0+β1b1(xi)+β2b2(xi)+⋯+βKbK(xi)+εi
来替代线性模型。
例如:对于多项式回归,基函数就是 b j ( x i ) = x i j b_j(x_i)=x^j_i bj(xi)=xij,而对于阶梯函数,其基函数为 b j ( x i ) = I ( c j ≤ x i < c j + 1 ) b_j(x_i)=I(c_j\leq x_i<c_{j+1}) bj(xi)=I(cj≤xi<cj+1)。
回归样条
分段多项式
分段多项式回归在
X
X
X 的不同区域拟合独立的低阶多项式函数。例如,分段三次多项式函数在
X
X
X 的不同区域拟合形式如下的模型,只有一个结点
c
c
c:
y
i
=
{
β
01
+
β
11
x
i
+
β
21
x
i
2
+
β
31
x
i
3
+
ε
i
,
x
i
<
c
β
02
+
β
12
x
i
+
β
22
x
i
2
+
β
32
x
i
3
+
ε
i
,
x
i
≥
c
y_i=\begin{cases}\beta_{01}+\beta_{11}x_i+\beta_{21}x_i^2+\beta_{31}x_i^3+\varepsilon_i,x_i<c\\\beta_{02}+\beta_{12}x_i+\beta_{22}x_i^2+\beta_{32}x_i^3+\varepsilon_i,x_i\geq c\end{cases}
yi={β01+β11xi+β21xi2+β31xi3+εi,xi<cβ02+β12xi+β22xi2+β32xi3+εi,xi≥c
最好要添加确保拟合曲线是连续的约束条件来拟合分段多项式,即在结点不能有跳跃。
d阶样条的一般定义是分段d阶多项式,同时在每个结点直到d-1阶导数都是连续的。
样条基函数
一个有
K
K
K 个结点的三次样条函数可以表示成:
y
i
=
β
0
+
β
1
b
1
(
x
i
)
+
β
2
b
2
(
x
i
)
+
⋯
+
β
K
+
3
b
K
+
3
(
x
i
)
+
ε
i
y_i=\beta_0+\beta_1b_1(x_i)+\beta_2b_2(x_i)+\cdots+\beta_{K+3}b_{K+3}(x_i)+\varepsilon_i
yi=β0+β1b1(xi)+β2b2(xi)+⋯+βK+3bK+3(xi)+εi
最直接的是先以三次多项式的基为基础,即
x
,
x
2
,
x
3
x,x^2,x^3
x,x2,x3,然后在每一个结点添加一个截断幂基(truncated power basis) 函数,结点为
ξ
k
\xi_k
ξk:
b
1
(
x
i
)
=
x
i
b
2
(
x
i
)
=
x
i
2
b
3
(
x
i
)
=
x
i
3
b
k
+
3
(
x
i
)
=
h
(
x
,
ξ
k
)
=
(
x
−
ξ
k
)
+
3
=
{
(
x
−
ξ
k
)
3
,
x
>
ξ
K
0
,
o
t
h
e
r
w
i
s
e
,
k
=
1
,
⋯
,
K
b_1(x_i)=x_i\\b_2(x_i)=x_i^2\\b_3(x_i)=x_i^3\\b_{k+3}(x_i)=h(x,\xi_k)=(x-\xi_k)^3_+=\begin{cases}(x-\xi_k)^3,x>\xi_K\\0,otherwise\end{cases},k=1,\cdots,K
b1(xi)=xib2(xi)=xi2b3(xi)=xi3bk+3(xi)=h(x,ξk)=(x−ξk)+3={(x−ξk)3,x>ξK0,otherwise,k=1,⋯,K
例:有一个结点:
y
i
=
β
0
+
β
1
x
i
+
β
2
x
i
2
+
β
3
x
i
3
+
β
4
h
(
x
,
ξ
)
y_i=\beta_0+\beta_1x_i+\beta_2x_i^2+\beta_3x_i^3+\beta_4h(x,\xi)
yi=β0+β1xi+β2xi2+β3xi3+β4h(x,ξ)
可以证明上述三次多项式在
ξ
\xi
ξ 处的三阶导数不连续,但函数本身、一阶导数、二阶导数都连续。
为了对数据集拟合有 K K K 个结点的三次样条,只需针对截距项和 3 + K 3+K 3+K 个预测项,即 X , X 2 , X 3 , h ( X , ξ 1 ) , h ( X , ξ 2 ) , ⋯ , h ( X , ξ K ) X,X^2,X^3,h(X,\xi_1),h(X,\xi_2),\cdots,h(X,\xi_K) X,X2,X3,h(X,ξ1),h(X,ξ2),⋯,h(X,ξK) 运用最小二乘回归,共需估计 K + 4 K+4 K+4 个系数,因此拟合三次样条需要 K + 4 K+4 K+4 个自由度。
不过,样条在预测变量之外的区域,即 X X X 取较大值或较小值时,有较大方差。
自然样条(Natural Splines) 是附加了边界约束的回归样条:函数在边界区域应该是线性的,这里的边界区域指的是 X X X 的值比最小的结点处的值小或比最大的结点处的值大。这一附加条件使自然样条的估计在边界处更稳定(置信区间更窄)。
确定结点的个数和位置
一种方法是尝试多个不同的结点个数,然后从中选择拟合的“形状最理想”的曲线。另一种方法是交叉验证,对不同的结点数目 K K K 不断重复,选择 R S S RSS RSS 最小的样条函数对应的 K K K。
一个具有 K K K 个结点的三次样条有 K + 4 K+4 K+4 个参数或自由度。
一个具有 K K K 个结点的自然样条有 K K K 个自由度。
回归样条与多项式回归对比:多项式函数附加的自由度使其在边界处的估计不足,而自然三次样条拟合较为合理。
光滑样条
简介
一个很自然的方法是最小化:
∑
i
=
1
n
(
y
i
−
g
(
x
i
)
)
2
+
λ
∫
g
′
′
(
t
)
2
d
t
\sum_{i=1}^n(y_i-g(x_i))^2+\lambda\int g''(t)^2dt
i=1∑n(yi−g(xi))2+λ∫g′′(t)2dt
第一项是
R
S
S
RSS
RSS,第二项是粗糙度惩罚项,
λ
\lambda
λ 是一个非负的调节参数。
∫ g ′ ′ ( t ) 2 d t \int g''(t)^2dt ∫g′′(t)2dt 衡量的是函数 g ′ ( t ) g'(t) g′(t) 在整个取值区域内整体的变化情况。如果 g g g 非常光滑,那么 g ′ ( t ) g'(t) g′(t) 接近于常数, ∫ g ′ ′ ( t ) 2 d t \int g''(t)^2dt ∫g′′(t)2dt 就会取较小的值。相反,如果 g g g 的跳跃性大,那么 g ′ ( t ) g'(t) g′(t) 就变动非常大, ∫ g ′ ′ ( t ) 2 d t \int g''(t)^2dt ∫g′′(t)2dt 就倾向于取较大的值。
λ \lambda λ 的值越大,函数 g g g 越光滑。 λ = 0 \lambda=0 λ=0 时,惩罚项不起作用, λ → ∞ \lambda\to\infin λ→∞ 时, g g g 会变得非常平稳,实际是条最小二乘直线。
选择光滑参数
调节参数 λ \lambda λ 控制光滑样条的粗糙度,也控制着有效自由度(effective degrees of freedom), λ \lambda λ 的值允许从0增加到 ∞ \infin ∞,这样实际的自由度( d f λ df_{\lambda} dfλ)就从 n n n 降至2。
有效自由度:令
g
^
λ
=
S
λ
y
\hat g_{\lambda}=S_{\lambda}y
g^λ=Sλy
其中
g
^
λ
\hat g_{\lambda}
g^λ 是使
∑
i
=
1
n
(
y
i
−
g
(
x
i
)
)
2
+
λ
∫
g
′
′
(
t
)
2
d
t
\sum_{i=1}^n(y_i-g(x_i))^2+\lambda\int g''(t)^2dt
∑i=1n(yi−g(xi))2+λ∫g′′(t)2dt 最小化的对于一个特定的
λ
\lambda
λ 的解,
g
^
λ
\hat g_{\lambda}
g^λ 是一个
n
n
n 维向量,其元素是训练集
x
1
,
x
2
,
⋯
,
x
n
x_1,x_2,\cdots,x_n
x1,x2,⋯,xn 对应的光滑样条的拟合值。
S
λ
S_{\lambda}
Sλ 是一个
n
×
n
n\times n
n×n 的矩阵,
y
y
y 是响应变量。于是,有效自由度的定义就是:
d
f
λ
=
∑
i
=
1
n
{
S
λ
}
i
i
df_{\lambda}=\sum_{i=1}^n\{S_{\lambda}\}_{ii}
dfλ=i=1∑n{Sλ}ii
有效自由度为矩阵
S
λ
S_{\lambda}
Sλ 的对角元素之和。
如何确定
λ
\lambda
λ:选择能够使得交叉验证的
R
S
S
RSS
RSS 尽量小的
λ
\lambda
λ 。利用下式,可以有效地计算光滑样条的留一交叉验证误差(LOOCV):
R
S
S
c
v
(
λ
)
=
∑
i
=
1
n
(
y
i
−
g
^
λ
(
−
i
)
(
x
i
)
)
2
=
∑
i
=
1
n
[
y
i
−
g
^
λ
(
x
i
)
1
−
{
S
λ
}
i
i
]
2
RSS_{cv}(\lambda)=\sum_{i=1}^n(y_i-\hat g_{\lambda}^{(-i)}(x_i))^2=\sum_{i=1}^n[\frac{y_i-\hat g_{\lambda}(x_i)}{1-\{S_{\lambda}\}_{ii}}]^2
RSScv(λ)=i=1∑n(yi−g^λ(−i)(xi))2=i=1∑n[1−{Sλ}iiyi−g^λ(xi)]2
其中
g
^
λ
(
−
i
)
(
x
i
)
\hat g_{\lambda}^{(-i)}(x_i)
g^λ(−i)(xi) 指的是光滑样条在
x
i
x_i
xi 处的拟合值,其计算过程使用的是剔除观测点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi) 外的所有训练观测。相反的,
g
^
λ
(
x
i
)
\hat g_{\lambda}(x_i)
g^λ(xi) 指的是光滑样条用所有的训练数据集拟合的结果。
局部回归
在对一个目标观测点 x 0 x_0 x0 拟合时,该方法只用到这个点附近的训练观测。
算法:在 X = x 0 X=x_0 X=x0 处的局部回归模型:
-
选取占所有数据 s = k / n s=k/n s=k/n 比例的最靠近 x 0 x_0 x0 的数据 x i x_i xi。
-
对选出的数据点赋予其权重 K i 0 = K ( x i , x 0 ) K_{i0}=K(x_i,x_0) Ki0=K(xi,x0)。离 x 0 x_0 x0 最远的点的权重为0,而最近的点权重最高。那些没有被选中的数据点的权重为0。
-
用定义好的权重在 x i x_i xi 处拟合加权最小二乘,也就是对下式最小化:
∑ i = 1 n K i 0 ( y i − β 0 − β 1 x i ) 2 \sum_{i=1}^nK_{i0}(y_i-\beta_0-\beta_1x_i)^2 i=1∑nKi0(yi−β0−β1xi)2 -
根据 f ^ ( x 0 ) = β ^ 0 + β ^ 1 x 0 \hat f(x_0)=\hat\beta_0+\hat\beta_1x_0 f^(x0)=β^0+β^1x0 得到 x 0 x_0 x0 的拟合结果。
选择较小的s相当于使用局部观测建模,拟合的效果会剧烈起伏。相反,当s很大时相当于使用所有的观测数据做一个全局的拟合,较光滑。可以用交叉验证来选择s,或直接给定。
广义可加模型
用于回归问题的GAM
为使模型的响应变量和预测变量之间具有非线性关系,对多元线性回归模型:
y
i
=
β
0
+
β
1
x
i
1
+
β
2
x
i
2
+
⋯
+
β
p
x
i
p
+
ε
i
y_i=\beta_0+\beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_px_{ip}+\varepsilon_i
yi=β0+β1xi1+β2xi2+⋯+βpxip+εi
一种方法是用一个光滑的非线性函数
f
j
(
x
i
j
)
f_j(x_{ij})
fj(xij) 替代
β
j
x
i
j
\beta_jx_{ij}
βjxij:
y
i
=
β
0
+
∑
j
=
1
p
f
j
(
x
i
j
)
+
ε
i
=
β
0
+
f
1
(
x
i
1
)
+
f
2
(
x
i
2
)
+
⋯
+
f
p
(
x
i
p
)
+
ε
i
y_i=\beta_0+\sum_{j=1}^pf_j(x_{ij})+\varepsilon_i=\beta_0+f_1(x_{i1})+f_2(x_{i2})+\cdots+f_p(x_{ip})+\varepsilon_i
yi=β0+j=1∑pfj(xij)+εi=β0+f1(xi1)+f2(xi2)+⋯+fp(xip)+εi
GAM的优点和局限性:
- GAM模型可以允许对每一个 X j X_j Xj 都拟合一个非线性 f j f_j fj,这样就可自动地对被标准的线性回归模型所忽略的非线性关系进行建模。这意味着不需要手动地尝试去为每一个变量设置许多不同的变形方式。
- 非线性拟合模型能将响应变量预测得更为精准。
- 由于模型是可加的,所以还是能在保持其他变量不变的情况下看每个变量 X j X_j Xj 对 Y Y Y 单独的影响效果。
- 针对变量 X j X_j Xj 的函数 f j f_j fj 的光滑性也能通过对自由度的分析得到。
- GAM模型的主要局限在于模型的形式被限定为可加形式。在多变量的情况下,这类模型通常会忽略有意义的交互项。不过也可以通过增加形式为 X j × X k X_j\times X_k Xj×Xk 的交互项使得GAM也能够表达交互效应,也可以增加形式为 f j k ( X j , X k ) f_{jk}(X_j,X_k) fjk(Xj,Xk) 的低维交互项,这样的交互项可以应用一些二维光滑方法如局部回归或者二维样条来拟合。
用于分类问题的GAM
令
p
(
X
)
=
P
r
(
Y
=
1
∣
X
)
p(X)=Pr(Y=1|X)
p(X)=Pr(Y=1∣X) 是给定预测变量值时响应变量为1的条件概率:
log
(
p
(
X
)
1
−
p
(
X
)
)
=
β
0
+
f
1
(
X
1
)
+
f
2
(
X
2
)
+
⋯
+
f
p
(
X
p
)
\log(\frac{p(X)}{1-p(X)})=\beta_0+f_1(X_1)+f_2(X_2)+\cdots+f_p(X_p)
log(1−p(X)p(X))=β0+f1(X1)+f2(X2)+⋯+fp(Xp)