假設有成對資料 (Xi, Yi), 其中 Yi 稱為「反應觀測值 (response observations)」而 Xi 是「「輔助觀測值 (auxiliary observations)」, 我們常希望建立一個函數關係來表現兩者間的關係:
Yi = g(Xi)
在統計上假設
Yi = g(Xi, ε_i) 或 Yi = g(Xi) + ε_i
意思是構成 Yi 觀測值的,除了 Xi 之外,還有隨機誤差項 ε_i 的作用,上列左式是一般式,右式假設 Yi 是由 g(Xi) 和隨機誤差項相加而成。最簡單的是考慮
Yi = α + β Xi + ε_i
稱為簡單直線迴歸模型 (simple linear regression model)。有時資料呈現的不是直線關係,如果沒有辦法確定 g(Xi) 的函數形式,可能會考慮多項式迴歸
Yi = β_0 + β_1 Xi + ... + β_k Xi^k + ε_i
但有時可發現資料存某點 c 前後呈現不同樣貌:
Yi = β_0 + β_1 Xi + ... + β_k Xi^k + ε_i, if Xi < c;
= β'_0 + β'_1 Xi + ... + β'_k Xi^k + ε_i, if Xi ≧ c.
例如在 c 的前後是不同宜線形。但這種分段多項式迴歸模型有個很大問題,那就是在 c 點前後完全是兩個不同多項式曲線,我們更希逞看到如下形式:
Yi = p_1(Xi) + ε_i, if Xi < c; = p_2(Xi) + ε_i if Xi ≧ c
with p_1^(j)(c) = p_2^(j)(c), j = 0, 1, ..., k-1
例如 k = 1 時,p_1(Xi), p_2(Xi) 都是一次的,而在 c 點其零階導數,即原函數值相等;做為另一個例子,k = 3,即 p_1(Xi) 與 p_2(Xi) 都是三次曲線形,而其在 c 之 0 階,1 階及 2 階導導數都相等。這使得 c 點左右兩個多項式函數連結在一起具有最高的平滑度,如 k = 1 時兩直線段連接在一起具 0 階平滑度,也就是說具連續性;k = 3 時兩段三次曲線在 c 點二階可微,昆為具二階平滑度。
前述分段點 c 稱之為「結 (knot)」,一般我們可以有不只一個結,假設有 s 個結,Xi 所在數線或 Xi 範圍被分割為 s+1 段,每一段用一個 k 階多項式配適 (fitting) 資料,則需要
(s + 1)(k + 1) 個參數= (s + 1)(k + 1) 個自由度
但如果各要求 k' (< k) 階平滑度,每個結點需要 k'+1 個限制,則模型自由度是
(s + 1)(k + 1) - s(k' + 1) = (k + 1) + s (k - k')
也就是說需要 (k + 1) + s (k - k') 個迴歸參數表現這個平滑分段多項式迴歸模型。如果要求最大平滑度,則 k' = k - 1,也就是說每一個結點只多了一個迴歸參數,因此模型總自由度是 k + 1 + s。
以 s = 1, k = 1 為例,即一個結點,各段皆直線式,也就是說我們考慮的是以特定一點 c 為折點的折線模型。顯然在 c 點是不可微分的,因此只能是 0 階平滑而不可能是 1 階平滑。若 c 點左右採用三階多項式,即 k = 3,則在 c 點不存在三階導數,因此只能最高二階平滑。以折線為例,不限制之分段直線迴歸為
Yi = α + β Xi + ε_i, if Xi < c; = α' + β' Xi + ε_i, if Xi ≧ c
要求在 c 點連續,則 α' = α + (β - β')c。又如 k = 3 時,β'_j 與 β_j 之間滿足三個等式,諸 β'_j 除一個自由變數以外,其他三個可用該自由變數(參數)與諸 β_j 表示。
上面用分段多項式表示的迴歸模型,又要求最高平滑度條件,使得分段多項式係數受到束縛,但令
h(x; c) = (max{0, (x-c)})^k = ((x-c)_+)^k
則 h^(j)(c) = 0, j = 0, 1, ..., k-1,因此
g(x) = β_0 + β_1 Xi + ... + β_k Xi^k + β_{k+1} h(Xi; c)
在 c 點左右都是 k 階多項式,而且在 c 點有 k-1 階平滑度。於是,有 s 個結點 c_1, ..., c_s 的平滑分段多項式迴歸式可以寫成
Yi = β_0 + Σ β_j Xi^j + Σ β_{k+j} h(Xi; c_j) + ε_i
如果結點 c_1, ..., c_s 是事先指定的,這仍然是一個多元線性迴歸模型,注意此處「線性」一詞其實是對迴歸參數諸 β_j, j = 0, 1, ..., k+s 而言的。當然實務上結點數 s 及結點位置 c_j 可能由資料決定,而稱之為「樣條迴歸 (spline regression)」, 或者說是「迴歸樣條 (regression spline)」.
如果沒有結,那就只是單純的多項式迴歸,一個結把資料分成前後兩半,較多的結可以配適得更好,但太多結猶如用太高階多項式,將造成過度配適 (overfitting)。從這一點來看,樣條迴歸可說是多項式迴歸的修飾:也許勉強用多項式迴歸配適資料需要較高階多項式函數;適當結點的低階樣條函數則可更適當配適資料並避免太高階多項式,一般可能採用線性樣條或三次樣條。不過,在 Xi 範圍的兩端,甚至範圍之外,樣條迴歸的估計或預測誤差其實較單一多項式迴歸更大而不穩定,因此也有所謂「自然樣條 (natural spline)」的方法,在‵最小結點之左與最大結點之右,樣條函數被強制限制為接近直緩。
樣條迴歸藉助將 Xi 分段來處理迴歸函數非直線性問題,另有「平滑樣條 (smoothing spline)」的方法則不設結點,直接極小化
Σ (Yi - g(Xi))^2 + λ ∫ (g"(x))^2 dx
積分的範圍可以是整個實數線,或者是 Xi 的概括範圍;另積分號下用 g 的二階導數只是形式之一,並稱之為「立方樣條 (cubic spline)」, 一般式可以用 (g^(m)(x))^2,或者,可以用差分或差商取代微分。詳參 Wiki。
平滑樣條的方法假設
g(x) = Σ_i g(Xi) Bi(x)
式中諸 Bi(x) 是一組樣條基函數。依上列表現式,Bi(x) 應滿足
Bi(Xj) = δ(i,j) = 1 if i = j; = 0 if i≠j
將 g(x) 的表現式代入目標式,則得
Σ (Yi - g(Xi))^2 + λ Σ_i Σ_j g(Xi) g(Xj) ∫ (Bi"(x))(Bj"(x)) dx
或可表示為
|| Y - m ||^2 + λ m' A m
式中 A 為 n×n 對稱方陣,其元素為 a(ij) = ∫ (Bi"(x))(Bj"(x)) dx,而 Y 為反應向量,m 為迴歸值向量。則用微分或配方法可得標準方程式
Y = (I + λ A) m
並得 m = (I + λA)^{-1} Y。
前面說到立方樣條只是一個例子,De Boor (2001) 則採用下列目標函數
p Σ Wi (Yi - g(Xi))^2 + (1 - p) ∫ (g^(m)(x))^2 dx
其中 p 也是需要估計的參數,稱之為「平滑因子 (smooth factor)」; 諸 Wi 是權量,也就是允許不同點有不同權值。除此之外,此法還要求設定一個界限值 S,要求
Σ Wi (Yi - g(Xi))^2 ≦ S
在 Wi = 1/Var[ε_i] 的情形,S 被建議取值在 n ± √(2n) 之間,蓋因若 Wi (Yi - g(Xi))^2 可視為 χ^2(1) 變量,則上列平方和是 χ^2(n) 變量,接近 N(n, 2n)。
前述迴歸樣條及平滑樣條的方法都可推廣至多個輔助變量(或即自變數,解釋變數),此處就不贅述了。