分段多项式和样条(附自然三次样条基函数证明,参考ESL)
一个分段多项式发f(x)可以用如下方法得到:X的定义域划分成连续区间,在每个区间用一个多项式表示。
h
1
(
X
)
=
I
(
X
<
ζ
1
)
;
h
2
(
X
)
=
I
(
ζ
1
≤
X
<
ζ
2
)
;
h
3
(
X
)
=
I
(
ζ
2
≤
X
)
h_1 (X)=I(X<ζ_1 ) ; h_2 (X)=I(ζ_1≤X<ζ_2 );h_3 (X)=I(ζ_2≤X)
h1(X)=I(X<ζ1);h2(X)=I(ζ1≤X<ζ2);h3(X)=I(ζ2≤X)
如果使用1阶多项式的模型,就还要三个附加的基函数:
h
m
+
3
=
h
m
(
X
)
X
,
m
=
1
,
2
,
3
h_{m+3}=h_m (X)X ,m=1,2,3
hm+3=hm(X)X,m=1,2,3
除特殊情况外,一般引用第三幅图,它也是分段线性的,但在两个纽结上限制为连续的。这些连续性限制导致参数上的线性约束;例如,
f
(
ζ
1
−
)
=
f
(
ζ
1
+
)
f(ζ_1^- )=f(ζ_1^+)
f(ζ1−)=f(ζ1+)蕴涵
β
1
+
ζ
1
β
4
=
β
2
+
ζ
1
β
5
β_1+ζ_1 β_4=β_2+ζ_1 β_5
β1+ζ1β4=β2+ζ1β5。在此情况下,由于有两个限制,我们期望得到两个参数,忽略四个自由参数。一种处理该情况更直接的方法是使用结合约束的基函数:
h
1
(
X
)
=
1
,
h
2
(
X
)
=
X
,
h_1 (X)=1,h_2 (X)=X,
h1(X)=1,h2(X)=X,
h
3
(
X
)
=
(
X
−
ζ
1
)
+
,
h
4
(
X
)
=
(
X
−
ζ
2
)
+
h_3 (X)=(X-ζ_1)_+,h_4 (X)=(X-ζ_2)_+
h3(X)=(X−ζ1)+,h4(X)=(X−ζ2)+
其中,
t
+
t_+
t+表示正的部分,函数
h
3
h_3
h3 如右图所示。
可以看到一阶多项式为基函数线条不够光滑,函数表达能力一般,于是使用3阶多项式,并保证在断点处函数值连续,一阶、二阶导函数连续。这称为三次样条,基函数如下所示:
h
1
(
X
)
=
1
,
h
2
(
X
)
=
X
,
h
3
(
X
)
=
X
2
,
h
4
(
X
)
=
X
3
h_1 (X)=1,h_2 (X)=X,h_3 (X)=X^2,h_4 (X)=X^3
h1(X)=1,h2(X)=X,h3(X)=X2,h4(X)=X3
h
5
(
X
)
=
(
X
−
ζ
1
)
+
3
,
h
6
(
X
)
=
(
X
−
ζ
2
)
+
3
h_5 (X)=(X-ζ_1 )_+^3,h_6 (X)=(X-ζ_2 )_+^3
h5(X)=(X−ζ1)+3,h6(X)=(X−ζ2)+3
一般地,一个具有纽结
ζ
j
(
j
=
1
,
…
,
K
)
ζ_j (j=1,…,K)
ζj(j=1,…,K)的M次样条是一个M次分段多项式,并具有高达M-2阶连续导函数。三次样条有M=4,在纽结上具有连续的1、2阶导数。
截尾幂基集的一般形式是(K+M个基函数):
h
j
(
X
)
=
X
j
−
1
,
j
=
1
,
…
,
M
h_j (X)=X^{j-1},j=1,…,M
hj(X)=Xj−1,j=1,…,M
h
M
+
ι
(
X
)
=
(
X
−
ζ
ι
)
+
M
−
1
,
ι
=
1
,
…
,
K
h_{M+ι}(X)=(X-ζ_ι )_+^{M-1},ι=1,…,K
hM+ι(X)=(X−ζι)+M−1,ι=1,…,K
可以断言,三次样条是肉眼看不出纽结上不连续的最低阶样条。在实践中,最广泛使用的样条次数为M=1,2和4。
order为M,含有K个结点的样条其自由度为M(K+1)-K(M-1)=K+M,左边第一项表示K+1个区域中每个区域需要M个参数,而第二项表明K个结点中需要M-1个限制。比如,对于三次样条,M=4则自由度为K+4。
我们知道,多项式拟合的行为在靠近边界处趋于不稳定,并且外推可能是危险的。对于样条,这些问题更加严重。在同一区间,与对应的全局多项式相比,越过边界纽结的多项式拟合更加不受控制。
自然三次样条(natural cubic spline)
自然三次样条添加额外的限制,具体地,令边界结点之外的函数是线性的。这样减少了4个自由度(两个边界区域分别两个限制条件),这四个自由度可以通过在内部区域取更多的结点花费掉。
具有K个纽结的自然三次样条用K个基函数表示:
N
1
(
X
)
=
1
,
N
2
(
X
)
=
X
,
N
k
+
2
(
X
)
=
d
k
(
X
)
−
d
K
−
1
(
X
)
N_1 (X)=1,N_2 (X)=X,N_{k+2}(X)=d_k (X)-d_{K-1}(X)
N1(X)=1,N2(X)=X,Nk+2(X)=dk(X)−dK−1(X)
其中
d
k
(
X
)
=
(
X
−
ζ
k
)
+
3
−
(
X
−
ζ
K
)
+
3
ζ
K
−
ζ
k
d_k (X)=\frac{(X-ζ_k )_+^3-(X-ζ_K )_+^3}{ζ_K-ζ_k}
dk(X)=ζK−ζk(X−ζk)+3−(X−ζK)+3
证明:
不对边界处做限制时,模型为:
f
(
x
)
=
∑
j
=
0
3
β
j
X
j
+
∑
k
=
1
K
θ
k
(
X
−
ζ
k
)
+
3
f(x)=∑_{j=0}^3β_j X^j+∑_{k=1}^Kθ_k (X-ζ_k )_+^3
f(x)=j=0∑3βjXj+k=1∑Kθk(X−ζk)+3
对于
x
1
≤
ζ
1
,
f
′
(
x
1
)
=
β
1
+
2
β
2
x
1
+
3
β
3
x
1
2
x_1≤ζ_1,f' (x_1 )=β_1+2β_2 x_1+3β_3 x_1^2
x1≤ζ1,f′(x1)=β1+2β2x1+3β3x12
由于1阶导数应为常数,所以
β
2
=
β
3
=
0
β_2=β_3=0
β2=β3=0
对于
x
2
≥
ζ
K
x_2≥ζ_K
x2≥ζK,
f
′
(
x
2
)
=
β
1
+
3
∑
k
=
1
K
θ
k
(
x
2
−
ζ
k
)
+
2
=
β
1
+
3
∑
k
=
1
K
θ
k
x
2
2
−
6
∑
k
=
1
K
θ
k
x
2
ζ
k
+
3
∑
k
=
1
K
θ
k
ζ
k
2
\begin{aligned} f' (x_2 ) & =β_1+3∑_{k=1}^Kθ_k (x_2-ζ_k )_+^2 \\ & =β_1+3∑_{k=1}^Kθ_kx_2^2-6∑_{k=1}^Kθ_k x_2 ζ_k+3∑_{k=1}^Kθ_kζ_k^2 \\ \end{aligned}
f′(x2)=β1+3k=1∑Kθk(x2−ζk)+2=β1+3k=1∑Kθkx22−6k=1∑Kθkx2ζk+3k=1∑Kθkζk2
同理,由于1阶导数应为常数,所以
∑
k
=
1
K
θ
k
=
∑
k
=
1
K
θ
k
ζ
k
=
0
(1)
∑_{k=1}^Kθ_k =∑_{k=1}^Kθ_k ζ_k=0\tag{1}
k=1∑Kθk=k=1∑Kθkζk=0(1)
由(1)解方程得
θ
K
−
1
=
∑
k
=
1
K
−
2
θ
k
ζ
k
−
ζ
K
∑
k
=
1
K
−
2
θ
k
ζ
K
−
ζ
K
−
1
θ_{K-1}=\frac{∑_{k=1}^{K-2}θ_k ζ_k-ζ_K ∑_{k=1}^{K-2}θ_k}{ζ_K-ζ_{K-1} }
θK−1=ζK−ζK−1∑k=1K−2θkζk−ζK∑k=1K−2θk
θ
K
=
ζ
K
−
1
∑
k
=
1
K
−
2
θ
k
−
∑
k
=
1
K
−
2
θ
k
ζ
k
ζ
K
−
ζ
K
−
1
θ_K=\frac{ζ_{K-1}∑_{k=1}^{K-2}θ_k-∑_{k=1}^{K-2}θ_k ζ_k}{ζ_K-ζ_{K-1} }
θK=ζK−ζK−1ζK−1∑k=1K−2θk−∑k=1K−2θkζk
对于
∑
k
=
1
K
θ
k
(
X
−
ζ
k
)
+
3
,
θ
K
−
1
∑_{k=1}^Kθ_k (X-ζ_k )_+^3,θ_{K-1}
∑k=1Kθk(X−ζk)+3,θK−1 和
θ
K
θ_K
θK 展开与
θ
i
θ_i
θi合并,则有
∑
k
=
1
K
θ
k
(
X
−
ζ
k
)
+
3
=
∑
k
=
1
K
−
2
(
θ
k
(
X
−
ζ
k
)
+
3
+
θ
k
ζ
k
−
ζ
K
θ
k
ζ
K
−
ζ
K
−
1
(
X
−
ζ
K
−
1
)
+
3
+
ζ
K
−
1
θ
k
−
θ
k
ζ
k
ζ
K
−
ζ
K
−
1
(
X
−
ζ
K
)
+
3
)
∑_{k=1}^Kθ_k (X-ζ_k)_+^3=∑_{k=1}^{K-2}(θ_k (X-ζ_k )_+^3+\frac{θ_k ζ_k-ζ_K θ_k}{ζ_K-ζ_{K-1}} (X-ζ_{K-1})_+^3+\frac{ζ_{K-1}θ_k-θ_k ζ_k}{ζ_K-ζ_{K-1} }(X-ζ_K )_+^3)
k=1∑Kθk(X−ζk)+3=k=1∑K−2(θk(X−ζk)+3+ζK−ζK−1θkζk−ζKθk(X−ζK−1)+3+ζK−ζK−1ζK−1θk−θkζk(X−ζK)+3)
θ
k
(
X
−
ζ
k
)
+
3
+
θ
k
ζ
k
−
ζ
K
θ
k
ζ
K
−
ζ
K
−
1
(
X
−
ζ
K
−
1
)
+
3
+
ζ
K
−
1
θ
k
−
θ
k
ζ
k
ζ
K
−
ζ
K
−
1
(
X
−
ζ
K
)
+
3
=
θ
k
(
(
X
−
ζ
k
)
+
3
+
ζ
k
−
ζ
K
ζ
K
−
ζ
K
−
1
(
X
−
ζ
K
−
1
)
+
3
+
ζ
K
−
1
−
ζ
k
ζ
K
−
ζ
K
−
1
(
X
−
ζ
K
)
+
3
)
=
θ
k
(
(
X
−
ζ
k
)
+
3
+
ζ
k
−
ζ
K
ζ
K
−
ζ
K
−
1
(
X
−
ζ
K
−
1
)
+
3
−
ζ
k
−
ζ
K
+
ζ
K
−
ζ
K
−
1
ζ
K
−
ζ
K
−
1
(
X
−
ζ
K
)
+
3
)
=
θ
k
(
(
X
−
ζ
k
)
+
3
−
(
X
−
ζ
K
)
+
3
+
ζ
k
−
ζ
K
ζ
K
−
ζ
K
−
1
(
(
X
−
ζ
K
−
1
)
+
3
−
(
X
−
ζ
K
)
+
3
)
)
=
θ
k
(
ζ
K
−
ζ
k
)
(
(
X
−
ζ
k
)
+
3
−
(
X
−
ζ
K
)
+
3
ζ
K
−
ζ
k
−
(
X
−
ζ
K
−
1
)
+
3
−
(
X
−
ζ
K
)
+
3
ζ
K
−
ζ
K
−
1
)
\begin{aligned} & θ_k (X-ζ_k )_+^3+\frac{θ_k ζ_k-ζ_K θ_k}{ζ_K-ζ_{K-1}} (X-ζ_{K-1})_+^3+\frac{ζ_{K-1}θ_k-θ_k ζ_k}{ζ_K-ζ_{K-1} }(X-ζ_K )_+^3 \\ & =θ_k( (X-ζ_k )_+^3+\frac{ ζ_k-ζ_K }{ζ_K-ζ_{K-1}} (X-ζ_{K-1})_+^3+\frac{ζ_{K-1}-ζ_k}{ζ_K-ζ_{K-1} }(X-ζ_K )_+^3) \\ & =θ_k( (X-ζ_k )_+^3+\frac{ ζ_k-ζ_K }{ζ_K-ζ_{K-1}} (X-ζ_{K-1})_+^3-\frac{ζ_k-ζ_K+ζ_K-ζ_{K-1}}{ζ_K-ζ_{K-1} }(X-ζ_K )_+^3) \\ & =θ_k ((X-ζ_k )_+^3-(X-ζ_K )_+^3+\frac{ζ_k-ζ_K}{ζ_K-ζ_{K-1}}((X-ζ_{K-1} )_+^3-(X-ζ_K )_+^3)) \\ & =θ_k (ζ_K-ζ_k)(\frac{(X-ζ_k )_+^3-(X-ζ_K )_+^3}{ζ_K-ζ_k}-\frac{(X-ζ_{K-1} )_+^3-(X-ζ_K )_+^3}{ζ_K-ζ_{K-1}}) \end{aligned}
θk(X−ζk)+3+ζK−ζK−1θkζk−ζKθk(X−ζK−1)+3+ζK−ζK−1ζK−1θk−θkζk(X−ζK)+3=θk((X−ζk)+3+ζK−ζK−1ζk−ζK(X−ζK−1)+3+ζK−ζK−1ζK−1−ζk(X−ζK)+3)=θk((X−ζk)+3+ζK−ζK−1ζk−ζK(X−ζK−1)+3−ζK−ζK−1ζk−ζK+ζK−ζK−1(X−ζK)+3)=θk((X−ζk)+3−(X−ζK)+3+ζK−ζK−1ζk−ζK((X−ζK−1)+3−(X−ζK)+3))=θk(ζK−ζk)(ζK−ζk(X−ζk)+3−(X−ζK)+3−ζK−ζK−1(X−ζK−1)+3−(X−ζK)+3)
因此第k+2个基函数就是
d
k
(
X
)
−
d
K
−
1
(
X
)
d_k (X)-d_{K-1}(X)
dk(X)−dK−1(X)
通常来说,回归样条得到的结果优于多项式回归。因为多项式回归需要通过设定很高的次数才能得到较为光滑的拟合效果,样条则通过增加节点个数但保持次数固定的方法来使结果变得光滑。回归样条允许我们在函数变动较快的区域设置多个节点,在稳定的区域设置较少的节点。
光滑样条
不加入光滑因子的拟合误差如下式:
R
S
S
(
f
,
λ
)
=
∑
i
=
1
N
(
y
i
−
f
(
x
i
)
)
2
RSS(f,\lambda)=∑_{i=1}^N(y_i-f(x_i ))^2
RSS(f,λ)=i=1∑N(yi−f(xi))2
引入光滑因子后:
R
S
S
(
f
,
λ
)
=
∑
i
=
1
N
(
y
i
−
f
(
x
i
)
)
2
+
λ
∫
f
′
′
(
t
)
2
d
t
RSS(f,\lambda)=∑_{i=1}^N(y_i-f(x_i ))^2 +\lambda∫{f''(t)}^2 dt
RSS(f,λ)=i=1∑N(yi−f(xi))2+λ∫f′′(t)2dt
其中,
λ
\lambda
λ是固定的光滑参数(smoothing parameter)。第一项度量与数据的邻近性,而第二项惩罚函数的曲率,并且λ建立二者之间的权衡。两种特殊情况是:
λ
=
0
\lambda=0
λ=0: f可以是对数据插值的任意函数。
λ
=
∞
\lambda=\infty
λ=∞:简单的最小二乘方直线拟合,因为没有二阶导数。
λ
\lambda
λ的值越大,代表函数越光滑。
值得注意的是,可以证明式
R
S
S
(
f
,
λ
)
RSS(f,\lambda)
RSS(f,λ)具有一个显式的、有限维的、惟一的最小化,它就是自然三次样条,纽结在
x
i
(
i
=
1
,
2
,
…
,
N
)
x_i (i=1,2,…,N)
xi(i=1,2,…,N)的惟一值上。看上去这一族方法过于参数化,因为这里有多达N个纽结,这意味N个自由度。然而,罚项转换成样条系数上的罚,它们向着线性拟合收缩。
解是自然样条,可以写成:
f
(
x
)
=
∑
j
=
1
N
N
j
(
x
)
θ
j
f(x)=∑_{j=1}^NN_j (x) θ_j
f(x)=j=1∑NNj(x)θj
其中,
N
j
(
x
)
N_j (x)
Nj(x)是表示该族自然样条的基函数的N维集合这样,准则归约成:
R
S
S
(
f
,
λ
)
=
(
y
−
N
θ
)
T
(
y
−
N
θ
)
+
λ
θ
T
Ω
N
θ
RSS(f,\lambda)=(y-Nθ)^T (y-Nθ)+\lambdaθ^T Ω_N θ
RSS(f,λ)=(y−Nθ)T(y−Nθ)+λθTΩNθ
其中,
N
i
j
=
N
j
(
x
i
)
,
{
Ω
N
}
j
k
=
∫
N
j
′
′
(
t
)
N
k
′
′
(
t
)
d
t
。
{N}_{ij}=N_j (x_i ),\left\{Ω_N \right\}_{jk}=∫N''_j (t) N''_k (t)dt。
Nij=Nj(xi),{ΩN}jk=∫Nj′′(t)Nk′′(t)dt。
则解为
θ
^
=
(
N
T
N
+
λ
Ω
N
)
−
1
N
T
y
\hat{θ}=(N^T N+λΩ_N )^{-1}N^T y
θ^=(NTN+λΩN)−1NTy
将
θ
^
\hat{θ}
θ^代入,拟合的光滑样条由下式给出:
f
^
(
x
)
=
∑
j
=
1
N
N
j
(
x
)
θ
^
j
\hat{f}(x)=∑_{j=1}^NN_j (x) \hat{θ}_j
f^(x)=j=1∑NNj(x)θ^j
具有预先选定λ的光滑样条是线性光滑子(与线性算子中一样)的一个例子。这是因为式
θ
^
=
(
N
T
N
+
λ
Ω
N
)
−
1
N
T
y
\hat{θ}=(N^T N+λΩ_N )^{-1}N^T y
θ^=(NTN+λΩN)−1NTy中估计的参数是
y
i
y_i
yi的线性组合。记训练预测子
x
i
x_i
xi上的拟合值
f
^
(
x
i
)
\hat{f}(x_i )
f^(xi)的N向量为
f
^
\hat{f}
f^则:
f
^
=
N
(
N
T
N
+
λ
Ω
N
)
−
1
N
T
y
=
S
λ
y
\hat{f}=N(N^T N+λΩ_N )^{-1}N^T y=S_λ y
f^=N(NTN+λΩN)−1NTy=Sλy
拟合又是y上线性的,并且有限线性算子
S
λ
S_λ
Sλ称作光滑子矩阵(smoother matrix)。这种线性性质的一个推论是f ̂由y产生并不依赖于y本身,
S
λ
S_λ
Sλ仅依赖于
x
i
x_i
xi和λ。光滑样条的有效自由度定义为(
S
λ
S_λ
Sλ的对角线元素之和):
d
f
λ
=
t
r
a
c
e
(
S
λ
)
df_λ=trace(S_λ)
dfλ=trace(Sλ)
【自由度指的是自由参数的个数。尽管在有n个结点的情况下,光滑样条有 n个参数也就是n个自由度,但n个自由度被λ大量地限制或者收缩了,因此我们用有效自由度
d
f
λ
df_λ
dfλ来衡量光滑样条的光滑性。
d
f
λ
df_λ
dfλ越大说明样条越不光滑,即低偏倚高方差。】
λ的值允许从0增加到
∞
\infty
∞,于是有效自由度
d
f
λ
df_λ
dfλ就从n降到2。
由于
S
λ
S_λ
Sλ对称而且半正定,可以进行实特征值分解。
光滑参数的自动选择
回归样条的光滑参数包括样条的次数、纽结个数和位置。对于光滑样条,我们只有罚参数λ需要选择,因为纽结在所有训练X上,并且在实践中总是使用三次样条。
对于回归样条,除非强制进行某些简化,否则选择纽结的位置和个数可能是组合复杂的。
{(在岭回归中,λ≥0是控制收缩量的复杂度参数:
λ
\lambda
λ值越大,收缩量越大。系数向0收缩(并相互收缩)。)
1.固定自由度
d
f
λ
=
t
r
a
c
e
(
S
λ
)
df_\lambda=trace(S_λ)
dfλ=trace(Sλ)在
λ
\lambda
λ上是单调的,因此可以通过固定df来确定
λ
\lambda
λ。这就有了一种传统的函数选择方法:试验多个不同的df值,并根据近似的F-检验、残差图或其他更主观的标准选择一个。以这种方法使用df提供了一种比较一些不同光滑方法的一致方法。
2.偏倚-方差权衡
平方预测误差EPE。