核迴歸法 (kernel regression) 是一種非參數化的迴歸估計法,假設
E[Y|X=x] = m(x)
我們並不知道 m(x) 函數形式,儘有在 Xi, i = 1, ..., n 得到的 Y 觀測值樣本資料點 Yi, i = 1, ..., n,那麼要如何估計迴歸(反應)函數 m(x)?
假設 (Xi,Yi), i = 1, ..., n 是從雙變量常態分布 (X,Y)~h(x,y) 抽取的隨機樣本,h(x,y) = g(x)f(y|x),則
m(x) = ∫ x f(y|x) dx = ∫ x h(x,y) dy/g(x) = ∫ x h(x,y) dy/∫ h(x,y) dy
若我們對 h(x,y) 一無所知,考慮核密度估計
h*(x,y) = [1/(nhk)] Σ K((x-Xi)/h)K((y-Yi)/k)
則 X 的邊際分布 g(x), 依上列 h 之估計 h* 為
g*(x) = [1/(nh)] Σ K((x-Xi)/h)
正是 g(x) 的核估計。故 m(x) 依 h* 計算,得
m*(x) = Σ K((x-Xi)/h)μ_i/Σ K((x-Xi)/h)
其中 μ_i = ∫ y K((y-Yi)/k)/k dy。如果核函數 K(u) 的中心是 0,則 μ_i = Yi,所以
m*(x) = Σ K((x-Xi)/h)Yi/Σ K((x-Xi)/h)
這是 Nadaraya 與 Watson 兩人分別同時於 1964 提出的核迴歸估計式,因此稱之為 Nadaraya-Watson 核迴歸估計式。
核平滑式 (kernel smoother) 定義核函數為
K_(h_λ)(X0,X) = D(||X0-X||/h_λ(X0))
式中 D 是一非負實值遞減函數,||.|| 一般用 Euclidean norm,即平常的長度或距離公式,h_λ 有一特別稱呼:核半徑 (kernel radius)。平滑式本身定義為
Y*(X0) = Σ K_(h_λ)(X0,Xi)Y(Xi)/Σ K_(h_λ)(X0,Xi)
除卻明確允許 Xi 為向量值,Yi 寫成 Y(Xi), x 寫成 X0 又 h_λ 可能非固定常數以外,上式不就是 Nadaraya-Watson 核迴歸估計式嗎?
考慮單變量 x 問題,核平滑最常用的是 Gaussian kernel
K_h(x,Xi) = e^(-(x-Xi)^2/(2h^2))
由於核函數 K 也出現在分母,只是做為權量之用,因此不需是一個機率密度函數。上列 K_h 當 x 等於某個 Xi 時,該處的 Y(Xi) 權值是 1,其他處的 Yj, j≠i 則權值較小,於是 Xi 處的平滑值 Y*(Xi) 就是諸 Y(Xj) 的加權平均,以 Y(Xi) 權值為 1,離 Xi 較遠處 Xj 對應的 Y(Xj) 有較小的權值。
對 x (或 X0),令 X_[m] 代表與 x 最接近的第 m 個 Xi,所以
h_m(x) = ||x-X_[m]|| ≦ ||x-X_[m+1]||
以此類推,然後取
D(t) = 1/m if |t| ≦ 1; = 0 otherwise
所以
K(x,Xi) = 1/m if ||x-Xi|| ≦ ||x-X_[m]||; = 0 otherwise
看似很複雜,這是因為將它套入前述核平滑方法所致。簡單地說,先決定 m,然後對每一 x 點,取最靠近的 m 點對應的 Y(Xi) 做簡單平均。此平滑法稱最鄰近平滑法 (nearest neighbor smoother),事實上它相當於計算時間數列長期趨勢所用的移動平均法,只是時間數列的 Xi 是等距時間點,而此處 Xi 則允許是不規則的,多維度的。
取 h_λ = λ, 常數,D(t) 為任意核函數,此法稱核平均平滑法 (kernel average smoother)。由於核半徑是常數,在 Xi 呈不規則散布的情況,假設核函數覆蓋範圍有限,不同 x 點之平滑值納入計算的 (Xi,Y(Xi)) 點個數是變動的。其中各點的權值也可能不是常數,除非採矩型核函數(在某一範圍內是常數,在範圍外是 0),因此是一種加權平均。當 x 靠近資料邊界時,以單變量 x, Xi 為例,在 x 左右有不同數量的 Xi,因此會造成偏誤,需要考慮修正。
前述兩種平滑法都假設核函數覆蓋範圍,也就是 x 鄰近,Y 應為常數,因此平滑方法就是取鄰近的 Xi 點對應的 Y(Xi) 做簡單或加權平均。如果
Y(Xi) ~ α + β Xi
那麼在 x 的 Y 平滑值似乎應採取 α + β x 較適當。當然這似乎是走參數化方法?不過核平滑法卻沒有假設整個資料遵循什麼機率模型,也沒有所謂「誤差項」的假設,而是在計算不同 x 點所在之 Y(x) 平滑值時,根據核函數有不同的權值分佈:
極小化 Σ K_(h_λ)(x,Xi)(Y(Xi) - α(x) - β(x)Xi)^2
由於不同 x 點對應不同權值分佈(權值配置),因此 α, β 計算結果也隨 x 而變。上式是 x, Xi 為單變量的情形,加權最小平方法很容易用在多變量 Xi, x 的情況。有限覆蓋範圍的核函數K 使得在不同 x 點,計算涉及的 Xi 點可以只是少數一些與 x 鄰近的點。所以這方法稱為局部線性迴歸法 (local linear regression)。把上述線性迴歸改成多項式迴歸,則稱之為局部多項式迴歸 (local polynomial regression)。
上述局部迴歸也稱移動迴歸 (moving regression),算是移動平均的擴展。在 xy-散佈圖的平滑化,常用 LOESS (locally estimated scatterplot smoothing) 或 LOWESS (locally weighted scatterplot smoothing) 即是局部迴歸法(兩名詞基本上是同一方法)。1964 Savitsky and Golay 首先提出 Savitzky–Golay filter,等同於 LOESS;William S. Cleveland 1979 重新發現這種平滑方法並給予不同名稱。做 LOESS 計算,首先決定一平滑參數或帶寬參數 α,在 x = Xi 取包含 Xi 的 nα 個點,以加權最小平方法配適一低階多項式,通常是一階(直線)或二階(拋物線), 當然理論上或方法探討時可以考慮更高階多項式。權量函數考慮資料點和計算點的距離,如同前面談過的核迴歸或核平滑,計算點是 x = Xi 時 Xi 點給予權值 1,其他 Xj 與 Xi 距離愈遠權值愈小。傳統採三次立方 (1-d^3)^3,d 是相對距離;但也可採其他權量函數配置各資料點的權值。
以上所述核迴歸、核平滑及局部迴歸其實本質上是一類方法,雖然在不同名稱上各有一些細節上的變異,例如核迴歸還有
Priestley–Chao kernel estimator
m_PC(x) = 1/h Σ_{i=2~n} (Xi-X(i-1))K((x-Xi)/h)Yi
Gasser–Müller kernel estimator
m_GM(x) = 1/h Σ_{i=1~n} [∫_[s(i-1),s(i)]K((x-u)/h) du]Yi,
s(i) = (X(i-1)+Xi)/2
兩種變形;而局部迴歸強調每個點的配適值只用相對少數的局部資料;核平滑則重點在 h_λ(x) 的彈性。