6.1 1次元カーネル平滑化法
株価の変動からトレンドを読み取りたい。気温データから季節変動を予測したい。 センサーデータからノイズを除去したい——データから滑らかな曲線を引く技術は、 あらゆる分野で必要とされる基本スキルです。
この章では、最もシンプルな「k近傍平均」から始め、なぜそれがガタガタになるのか、 どうすれば滑らかにできるのか、そして境界での問題をどう解決するのかを、一歩ずつ見ていきます。
データから曲線を推定する問題
散布図を見てください。点がばらついていますが、その背後には「真の関数」が隠れているはずです。
ここで $f(X)$ が知りたい真の関数、$\varepsilon$ はノイズ(測定誤差やランダムな変動)です。私たちの目標は、ノイズに惑わされず、 この $f(X)$ を推定することです。
最も単純な方法は何でしょうか?推定したい点 $x_0$ の 「近く」にあるデータの $y$ 値を平均することです。 これが k近傍平均 の考え方です。
ここで $\text{Ave}$ は平均(Average)、$N_k(x)$ は $x$ に 最も近い $k$ 個の点の集合です。 例えば $k=30$ なら、最も近い30点の$y$ 値を平均します。
直感的で分かりやすいですね。でも、この方法には問題があります。
$x_0$ を少し動かすと、近傍に含まれる点が「急に」 入れ替わることがあります。ある点が近傍から外れ、別の点が入ってくる瞬間、推定値も急に変化します。 結果として、推定曲線はガタガタ(不連続)になります。

式の意味
$\text{Ave}$: 平均(Average)
$N_k(x)$: $x$ に最も近い$k$ 個の点の集合
カーネルによる重み付け
前のセクションで見たk近傍平均の問題は、近傍に「入っている」か「入っていない」かの二択しかないことでした。
この問題を解決するアイデアは自然です:距離に応じて重みを滑らかに変化させる。
近い点には大きな重み、遠い点には小さな重みを与えます。この重み付けを行う関数をカーネルと呼びます。
Nadaraya-Watson(ナダラヤ・ワトソン)カーネル平滑化推定量:
この式の意味を考えてみましょう:
- 分子:各点の $y_i$ にカーネルの重み$K_\lambda(x_0, x_i)$ を掛けて足し合わせる
- 分母:重みの合計(これで割ることで、重みが合計1になるよう正規化)
つまり、距離に応じた重み付き平均です。
カーネル関数の例として、Epanechnikov(エパネチニコフ)カーネルがあります:
$\lambda$ はバンド幅と呼ばれ、 カーネルの「幅」を決めるパラメータです。$\lambda$ が 大きいほど、より遠くの点も考慮します。

カーネルを使うと、点が近傍に入る・出るときの変化が滑らかになります。 遠くの点は最初から重みがほぼゼロなので、近傍の境界付近で点が入れ替わっても、推定値は急変しません。
重要なポイント
これは距離に応じた重み付き平均:近い点ほど重要、遠い点は無視。
バンド幅とバイアス・バリアンスのトレードオフ
カーネル平滑化で最も重要なパラメータはバンド幅 $\lambda$ です。 これは近傍の「幅」を決めます。
バンド幅の選択は、予測精度に大きく影響します。
バンド幅が狭い($\lambda$ が小さい)とき:
- 少数の近くの点だけを使う
- バリアンス(分散)が大きい:個々のデータ点の影響を強く受け、推定が不安定になる
- バイアス(偏り)が小さい:局所的な変動を捉えられる
バンド幅が広い($\lambda$ が大きい)とき:
- 多数の点を平均する
- バリアンス(分散)が小さい:平均化により安定する
- バイアス(偏り)が大きい:真の関数の細かな変動を見逃す

これがバイアス・バリアンスのトレードオフです。 狭すぎるとノイズに振り回され、広すぎると真の構造を見逃します。
最適なバンド幅は、このトレードオフのバランスが取れた点にあります。 実際には交差検証(データを分割して予測精度を評価する方法)で選びます。
この式は、予測誤差がバイアスとバリアンスの両方から生じることを示しています。
| バンド幅 | バイアス | バリアンス | 結果 |
|---|---|---|---|
| 狭い $\lambda$ | 小 | 大 | ノイジー |
| 広い $\lambda$ | 大 | 小 | 滑らかすぎる |
| 適度な $\lambda$ | 中 | 中 | バランス良好 |
境界でのバイアス問題
カーネル平滑化には、もう一つ重要な問題があります。境界でのバイアスです。
データの端(境界)では、カーネルの片側にしかデータがありません。するとどうなるでしょうか?
真の関数が右上がりだとします。境界付近のターゲット点 $x_0$ を考えると:
- カーネル内の点は、$x_0$ より左側に集中している
- 左側の点は、$x_0$ より低い $y$ 値を持つ傾向がある
- 重み付き平均は、真の値より低くなる

これが境界バイアスです。カーネルの非対称性により、推定値が系統的にずれてしまいます。
このバイアスは真の関数の傾きに比例します。傾きが急なほど、ずれも大きくなります。
この問題は境界だけでなく、データが不均一に分布している内部でも起こりえます。
境界では、カーネルの非対称性により
バイアス $\approx f'(x_0) \times (\text{カーネルの重心のずれ})$
局所線形回帰
境界バイアスを解消する美しい方法があります。それが局所線形回帰です。
アイデアは単純です。各ターゲット点 $x_0$ で、 定数(平均)ではなく直線を当てはめるのです。
これは重み付き最小二乗法で実現します:
そして、その直線上の $x_0$ での値を推定値とします:
なぜこれがバイアスを解消するのでしょうか?

境界で考えてみましょう。データが片側に偏っていても、直線を当てはめることで、 データの「傾向」(傾き)を捉えられます。その傾きを使って $x_0$での値を推定するので、単純平均のような系統的なずれが生じません。
数学的には、局所線形回帰は1次のバイアスを自動的に補正します。 専門的には「automatic kernel carpentry(自動カーネル大工)」と呼ばれます—— カーネルの形を境界で賢く修正することを、アルゴリズムが自動で行ってくれるのです。
重み付き最小二乗問題
推定値
局所多項式回帰
局所線形回帰で1次のバイアスを消せるなら、さらに高次の多項式を使えばどうでしょう?
局所多項式回帰は、局所線形回帰を一般化したものです。 次数 $d$ の多項式を各ターゲット点で当てはめます:
次数を上げることで、より高次のバイアスを消すことができます:
- 局所定数($d=0$):バイアスは1次から(Nadaraya-Watson)
- 局所線形($d=1$):バイアスは2次から
- 局所2次($d=2$):バイアスは3次から

しかし、ここにもトレードオフがあります。次数を上げるとバリアンスが増加します。
実際の選択の指針:
- 境界では局所線形が有効(バイアス削減効果大、バリアンス増加は適度)
- 内部の曲率が強い領域では局所2次が有効(「山を削り谷を埋める」バイアスを補正)
- 漸近理論は奇数次を推奨(境界効果の支配)
多くの場合、局所線形回帰($d=1$)で十分です。
局所多項式回帰(次数 $d$)の推定値
| 次数 | バイアス開始次数 | バリアンス |
|---|---|---|
| $d=0$(定数) | 1次 | 低 |
| $d=1$(線形) | 2次 | 中 |
| $d=2$(2次) | 3次 | 高 |
まとめ
この章では、データから滑らかな曲線を推定する方法を学びました。
k近傍平均から出発し:
- 近傍に入る・出るの離散的な変化で推定曲線がガタガタになる問題を発見
カーネル平滑化で解決:
- 距離に応じて滑らかに重みを変化させる
- Nadaraya-Watsonの重み付き平均
バンド幅選択の重要性:
- バイアスとバリアンスのトレードオフ
- 交差検証で最適値を選ぶ
境界バイアスの問題:
- カーネルの非対称性による系統的なずれ
局所線形回帰で解決:
- 定数ではなく直線を局所的に当てはめる
- 1次のバイアスを自動的に補正
局所多項式回帰への一般化:
- より高次のバイアスを消せるが、バリアンスは増加

カーネル平滑化法は、「近くのデータほど重要」という直感を数学的に形式化したものです。 この考え方は、次の章で学ぶ多次元への拡張や、密度推定、分類問題にも応用されます。
| 手法 | 推定方法 | バイアス | バリアンス |
|---|---|---|---|
| k近傍平均 | 近傍の単純平均 | 1次から | 低 |
| Nadaraya-Watson | 重み付き平均 | 1次から | 低 |
| 局所線形回帰 | 重み付き直線当てはめ | 2次から | 中 |
| 局所多項式(次数$d$) | 重み付き多項式当てはめ | $d+1$次から | 高 |