6.1 1次元カーネル平滑化法

株価の変動からトレンドを読み取りたい。気温データから季節変動を予測したい。 センサーデータからノイズを除去したい——データから滑らかな曲線を引く技術は、 あらゆる分野で必要とされる基本スキルです。

この章では、最もシンプルな「k近傍平均」から始め、なぜそれがガタガタになるのか、 どうすれば滑らかにできるのか、そして境界での問題をどう解決するのかを、一歩ずつ見ていきます。

データから曲線を推定する問題

散布図を見てください。点がばらついていますが、その背後には「真の関数」が隠れているはずです。

$$Y = f(X) + \varepsilon$$

ここで $f(X)$ が知りたい真の関数、$\varepsilon$ノイズ(測定誤差やランダムな変動)です。私たちの目標は、ノイズに惑わされず、 この $f(X)$ を推定することです。

最も単純な方法は何でしょうか?推定したい点 $x_0$ の 「近く」にあるデータの $y$ 値を平均することです。 これが k近傍平均 の考え方です。

$$\hat{f}(x) = \text{Ave}(y_i \mid x_i \in N_k(x))$$

ここで $\text{Ave}$ は平均(Average)、$N_k(x)$$x$ に 最も近い $k$ 個の点の集合です。 例えば $k=30$ なら、最も近い30点の$y$ 値を平均します。

直感的で分かりやすいですね。でも、この方法には問題があります。

$x_0$ を少し動かすと、近傍に含まれる点が「急に」 入れ替わることがあります。ある点が近傍から外れ、別の点が入ってくる瞬間、推定値も急に変化します。 結果として、推定曲線はガタガタ(不連続)になります。

k近傍平均による推定がガタガタになる様子

式の意味
$\text{Ave}$: 平均(Average)
$N_k(x)$: $x$ に最も近い$k$ 個の点の集合

カーネルによる重み付け

前のセクションで見たk近傍平均の問題は、近傍に「入っている」か「入っていない」かの二択しかないことでした。

この問題を解決するアイデアは自然です:距離に応じて重みを滑らかに変化させる

近い点には大きな重み、遠い点には小さな重みを与えます。この重み付けを行う関数をカーネルと呼びます。

Nadaraya-Watson(ナダラヤ・ワトソン)カーネル平滑化推定量

$$\hat{f}(x_0) = \frac{\sum_{i=1}^{N} K_\lambda(x_0, x_i) \cdot y_i}{\sum_{i=1}^{N} K_\lambda(x_0, x_i)}$$

この式の意味を考えてみましょう:

つまり、距離に応じた重み付き平均です。

カーネル関数の例として、Epanechnikov(エパネチニコフ)カーネルがあります:

$$K_\lambda(x_0, x) = D\left(\frac{|x - x_0|}{\lambda}\right)$$
$$D(t) = \begin{cases} \frac{3}{4}(1 - t^2) & |t| \leq 1 \\ 0 & \text{それ以外} \end{cases}$$

$\lambda$バンド幅と呼ばれ、 カーネルの「幅」を決めるパラメータです。$\lambda$ が 大きいほど、より遠くの点も考慮します。

カーネル重み付けで滑らかな曲線が得られる様子

カーネルを使うと、点が近傍に入る・出るときの変化が滑らかになります。 遠くの点は最初から重みがほぼゼロなので、近傍の境界付近で点が入れ替わっても、推定値は急変しません。

重要なポイント
これは距離に応じた重み付き平均:近い点ほど重要、遠い点は無視。

バンド幅とバイアス・バリアンスのトレードオフ

カーネル平滑化で最も重要なパラメータはバンド幅 $\lambda$ です。 これは近傍の「幅」を決めます。

バンド幅の選択は、予測精度に大きく影響します。

バンド幅が狭い($\lambda$ が小さい)とき

バンド幅が広い($\lambda$ が大きい)とき

バンド幅の変化に伴う推定曲線の変化

これがバイアス・バリアンスのトレードオフです。 狭すぎるとノイズに振り回され、広すぎると真の構造を見逃します。

最適なバンド幅は、このトレードオフのバランスが取れた点にあります。 実際には交差検証(データを分割して予測精度を評価する方法)で選びます。

$$\text{MSE}(\text{平均二乗誤差}) = \text{Bias}^2 + \text{Variance}$$

この式は、予測誤差がバイアスとバリアンスの両方から生じることを示しています。

バンド幅バイアスバリアンス結果
狭い $\lambda$ノイジー
広い $\lambda$滑らかすぎる
適度な $\lambda$バランス良好

境界でのバイアス問題

カーネル平滑化には、もう一つ重要な問題があります。境界でのバイアスです。

データの端(境界)では、カーネルの片側にしかデータがありません。するとどうなるでしょうか?

真の関数が右上がりだとします。境界付近のターゲット点 $x_0$ を考えると:

境界でカーネル平滑化がバイアスを持つ様子

これが境界バイアスです。カーネルの非対称性により、推定値が系統的にずれてしまいます。

$$E[\hat{f}(x_0)] \neq f(x_0)$$

このバイアスは真の関数の傾きに比例します。傾きが急なほど、ずれも大きくなります。

この問題は境界だけでなく、データが不均一に分布している内部でも起こりえます。

境界では、カーネルの非対称性により

$$E[\hat{f}(x_0)] \neq f(x_0)$$

バイアス $\approx f'(x_0) \times (\text{カーネルの重心のずれ})$

局所線形回帰

境界バイアスを解消する美しい方法があります。それが局所線形回帰です。

アイデアは単純です。各ターゲット点 $x_0$ で、 定数(平均)ではなく直線を当てはめるのです。

これは重み付き最小二乗法で実現します:

$$\min_{\alpha(x_0), \beta(x_0)} \sum_{i=1}^{N} K_\lambda(x_0, x_i) [y_i - \alpha(x_0) - \beta(x_0) x_i]^2$$

そして、その直線上の $x_0$ での値を推定値とします:

$$\hat{f}(x_0) = \hat{\alpha}(x_0) + \hat{\beta}(x_0) x_0$$

なぜこれがバイアスを解消するのでしょうか?

局所線形回帰が境界バイアスを解消する様子

境界で考えてみましょう。データが片側に偏っていても、直線を当てはめることで、 データの「傾向」(傾き)を捉えられます。その傾きを使って $x_0$での値を推定するので、単純平均のような系統的なずれが生じません。

数学的には、局所線形回帰は1次のバイアスを自動的に補正します。 専門的には「automatic kernel carpentry(自動カーネル大工)」と呼ばれます—— カーネルの形を境界で賢く修正することを、アルゴリズムが自動で行ってくれるのです。

重み付き最小二乗問題

$$\min_{\alpha, \beta} \sum_{i=1}^{N} K_\lambda(x_0, x_i) [y_i - \alpha - \beta x_i]^2$$

推定値
$$\hat{f}(x_0) = \hat{\alpha}(x_0) + \hat{\beta}(x_0) x_0$$

局所多項式回帰

局所線形回帰で1次のバイアスを消せるなら、さらに高次の多項式を使えばどうでしょう?

局所多項式回帰は、局所線形回帰を一般化したものです。 次数 $d$ の多項式を各ターゲット点で当てはめます:

$$\min_{\alpha, \beta_1, \ldots, \beta_d} \sum_{i=1}^{N} K_\lambda(x_0, x_i) \left[ y_i - \alpha - \sum_{j=1}^{d} \beta_j x_i^j \right]^2$$

次数を上げることで、より高次のバイアスを消すことができます:

局所多項式の次数による推定の違い

しかし、ここにもトレードオフがあります。次数を上げるとバリアンスが増加します

実際の選択の指針:

多くの場合、局所線形回帰($d=1$)で十分です。

局所多項式回帰(次数 $d$)の推定値

$$\hat{f}(x_0) = \hat{\alpha}(x_0) + \sum_{j=1}^{d} \hat{\beta}_j(x_0) x_0^j$$

次数バイアス開始次数バリアンス
$d=0$(定数)1次
$d=1$(線形)2次
$d=2$(2次)3次

まとめ

この章では、データから滑らかな曲線を推定する方法を学びました。

k近傍平均から出発し:

カーネル平滑化で解決:

バンド幅選択の重要性:

境界バイアスの問題:

局所線形回帰で解決:

局所多項式回帰への一般化:

手法の比較まとめ

カーネル平滑化法は、「近くのデータほど重要」という直感を数学的に形式化したものです。 この考え方は、次の章で学ぶ多次元への拡張や、密度推定、分類問題にも応用されます。

手法推定方法バイアスバリアンス
k近傍平均近傍の単純平均1次から
Nadaraya-Watson重み付き平均1次から
局所線形回帰重み付き直線当てはめ2次から
局所多項式(次数$d$重み付き多項式当てはめ$d+1$次から