「データから予測を行いたい」。これは統計学の基本的な目標です。
例えば、身長から体重を予測したい。ある人が170cmなら、その周辺のデータを参考に予測する――これがカーネル平滑化の基本アイデアでした。
しかし現実のデータは、複数の変数が絡み合っています。身長だけでなく、年齢、運動習慣、食事量...。1つの変数だけでなく、複数の変数を同時に考慮した予測がしたい。
ここで自然な疑問が湧きます:「1次元でうまくいった方法を、そのまま高次元に拡張できないか?」
答えは「できる、しかし深刻な問題が待ち受けている」です。
この章では、局所回帰を高次元に拡張する方法と、そこで直面する「次元の呪い」、そしてそれを乗り越えるための構造化アプローチを探ります。
この章を読み終えると:
1次元のカーネル平滑化では、ターゲット点(予測したい点)$x_0$の近くにある点に重みをつけて平均を取りました。
カーネルとは、「どの点にどれだけの重みをつけるか」を決める関数です。近い点ほど大きな重み、遠い点ほど小さな重みを与えます。
この考え方は、実は驚くほど自然に多次元へ拡張できます。
2次元の場合を考えてみましょう。ターゲット点が $(x_{01}, x_{02})$ にあるとき、各データ点 $(x_{i1}, x_{i2})$ との「距離」を測り、近い点ほど大きな重みをつけます。
例えば、不動産の価格予測を考えてください。「広さ」と「駅からの距離」という2つの変数があります。予測したい物件(70平米、駅から5分)に近い物件(似た広さで、似た距離感)ほど、その価格を重視するわけです。
数学的には、1次元のカーネル:
を、多次元ではユークリッド距離(2点間の直線距離)を使った形に拡張します:
各記号の意味:
$x_0$:予測したいターゲット点
$x$:データ点
$||x - x_0||$:2点間のユークリッド距離(直線距離)
$\lambda$:「近い」と見なす範囲の広さ(バンド幅)
$D$:距離が大きいほど小さくなる関数(例:ガウシアン)
2次元でのユークリッド距離は、ピタゴラスの定理と同じです:

カーネル関数 $D$ にはガウシアンやEpanechnikov、tri-cubeなど、1次元と同じものが使えます。この拡張により、2次元でも3次元でも、理論上は任意の次元で局所回帰が可能になります。
局所定数フィット(近傍の平均を取る方法)を多次元に拡張すると、境界付近でバイアス(予測の系統的なずれ)が生じます。これは1次元でも見た問題でした。
そこで、局所線形回帰の出番です。多次元でも同じアイデアが使えます:ターゲット点 $x_0$ の周りで、超平面をローカルにフィットするのです。
超平面とは何でしょうか?段階的に考えましょう:
フィットの「複雑さ」を制御するパラメータとして、多項式の次数 $d$ があります:
ターゲット点 $x_0$ での局所回帰は、以下の重み付き最小二乗問題を解きます:
式の意味:
$K_\lambda(x_0, x_i)$:データ点 $x_i$ への重み(近いほど大きい)
$y_i$:データ点 $x_i$ での実際の値
$b(x_i)^T \beta(x_0)$:フィットしたモデルによる予測値
括弧内の2乗:予測誤差の2乗
合計:重み付きの予測誤差の総和
これを最小化する $\beta(x_0)$ を見つけ、推定値 $\hat{f}(x_0) = b(x_0)^T \hat{\beta}(x_0)$ を得ます。

多次元での局所線形回帰の大きな利点は、境界補正が自動的に行われることです。カーネルが非対称になる境界付近でも、直線/平面フィットが自然にバイアスを修正してくれます。
ここで、深刻な問題に直面します。
1次元でも境界付近ではカーネルが非対称になり、バイアスが生じました。しかし多次元では、この問題が急激に悪化します。
なぜでしょうか?
考えてみてください。1次元の場合、データが区間 $[0, 1]$ に分布しているとします。境界から距離 $r$ 以内にある点の割合は、大雑把に言って $2r$ です(両端で $r$ ずつ)。
$r = 0.1$ とすると、境界付近の点は全体の約20%です。
2次元で正方形 $[0, 1] \times [0, 1]$ の場合はどうでしょう?境界から距離 $r$ 以内の領域は、正方形の「縁」の部分です。その面積は約 $4r - 4r^2 \approx 4r$($r$ が小さいとき)です。
$r = 0.1$ とすると、境界付近の点は全体の約40%です。
3次元の立方体では?約 $6r$ で、$r = 0.1$ なら約60%です。
パターンが見えてきましたか?

次元が高くなるほど、ほとんどの点が「境界付近」に位置するようになるのです。これは「次元の呪い」の一つの現れです。
高次元空間では、データ点の大部分が境界効果の影響を受け、バイアスの問題から逃れられなくなります。
境界から距離 $r$ 以内にある点の割合(概算):
1次元:$\approx 2r$($r = 0.1$ で約20%)
2次元:$\approx 4r$($r = 0.1$ で約40%)
3次元:$\approx 6r$($r = 0.1$ で約60%)
p次元:$\approx 2pr$
境界効果の悪化は「次元の呪い」の一つの顔に過ぎません。実は、もっと根本的な問題が高次元空間には潜んでいます。
局所回帰の基本的なアイデアを思い出してください:「近くの点を使って局所的にモデルをフィットする」。ここで「近く」とは何でしょうか?
例えば、訓練データの10%を使って局所的なフィットを行いたいとしましょう。
1次元で $[0, 1]$ にデータが一様分布している場合、10%の点を含む近傍の幅は約 $0.1$ です。これは空間全体(幅1)の10%しか占めません。
2次元の単位正方形ではどうでしょう?10%の点を含む近傍の面積は $0.1$ ですから、その一辺の長さは $\sqrt{0.1} \approx 0.316$ です。空間の31.6%を占めます。
10次元では?$0.1^{1/10} \approx 0.794$ です。空間の79.4%を占めます。

高次元になるほど、「局所的」な近傍が空間全体を覆うようになるのです。
これでは「局所」回帰の意味がありません。全体を使っているのと変わらないからです。
ここで矛盾する2つの要求があります:
高次元では、この2つを同時に満たすことが不可能になります。これが次元の呪いの本質です。
データの10%($r = 0.1$)を含む近傍の一辺の長さ:
$\text{辺の長さ} = r^{1/p} = 0.1^{1/p}$
| 次元 $p$ | 辺の長さ | 空間に占める割合 |
|---|---|---|
| 1 | 0.100 | 10% |
| 2 | 0.316 | 31.6% |
| 5 | 0.631 | 63.1% |
| 10 | 0.794 | 79.4% |
次元の呪いは避けられないのでしょうか?
実は、打開策があります。それは「構造」を仮定することです。
最も強力な構造の一つが加法モデルです:
式の意味:
$f$:予測したい値(例:不動産価格)
$\alpha$:基準値(全体の平均)
$g_j(X_j)$:変数 $X_j$ だけによる寄与(例:広さの影響、駅距離の影響)
これは、応答変数が各予測変数の「独立した」関数の和であると仮定しています。
具体例で考えましょう。不動産価格を予測するとき:
価格 = 基準価格 + 広さによる影響 + 駅距離による影響
この仮定では、「広さが大きくて駅が近い」場合の追加ボーナスはありません。各変数の効果を単純に足し合わせるだけです。
現実には「交互作用」(変数の組み合わせ効果)が存在することもありますが、この単純化により大きなメリットが得られます。

各 $g_j$ は1次元の関数なので、1次元の局所回帰で推定できます。次元の呪いを完全に回避できるのです。
もう少し柔軟なモデルとして、「2次までの交互作用を許す」構造もあります:
高次の交互作用を打ち切ることで、推定すべき関数の複雑さを制御します。構造を仮定するとは、「すべての可能性を考えない」ことです。それはバイアスを導入するかもしれませんが、分散を劇的に減らし、次元の呪いを緩和します。
加法モデル以外にも、構造化の方法があります。その一つが変動係数モデルです。
予測変数を2つのグループに分けます:$(X_1, \ldots, X_q)$ と残りの変数を $Z$ としてまとめます。そして、次のモデルを考えます:
式の意味:
$X_1, \ldots, X_q$:主要な予測変数
$Z$:係数を調整する「条件」変数
$\alpha(Z), \beta_1(Z), \ldots$:$Z$ に依存して変化する係数
これは面白いモデルです。$Z$ を固定すると、$X_1, \ldots, X_q$ に対して単なる線形モデルになります。しかし、係数は $Z$ に依存して変化します。
人間の大動脈(心臓から出る大きな血管)の直径を、年齢の関数としてモデル化してみましょう。
単純なモデル:直径 = 切片 + 傾き × 年齢
しかし、この関係は「大動脈のどの位置で測定するか」によって変わります。心臓に近い部分と遠い部分では、年齢による太り方が異なるかもしれません。
変動係数モデルでは:

これにより、「位置が変わると、年齢との関係も変わる」というパターンを捉えられます。
構造($X$ に対する線形性)を仮定することで、$Z$ の次元が低ければ、次元の呪いを避けながら柔軟なモデリングが可能になります。
構造を導入する別の方法として、カーネル自体を工夫することもできます。
標準的なカーネル $K_\lambda(x_0, x) = D(||x - x_0||/\lambda)$ は、すべての変数(座標)を等しく扱います。しかし、すべての変数が同じ重要度を持つとは限りません。
例えば、不動産価格の予測で「広さ」と「築年数」を使う場合、価格への影響度が異なるかもしれません。
そこで、構造化カーネルを導入します:
ここで $A$ は「どの方向の距離を重視するか」を決める行列です。
直感的に言えば:

実用的には、各変数を単位標準偏差にスケーリングする(変数を標準化する)のがデフォルトの戦略です。これにより、異なる単位(例:平米とメートル)の変数を公平に扱えます。
構造化カーネルは、特定の方向への変動を強調したり、無視したりする柔軟性を提供します。これも次元の呪いに対する一つの対処法です。
高次元データで局所回帰を使う際の実践的なアドバイスをまとめます。
局所回帰が実用的なのは、せいぜい2〜3次元までです。それ以上の次元では、次元の呪いが深刻になります。4変数以上あるなら、構造の仮定が必要です。
高次元データでは、構造の仮定が不可欠です:
3次元以上のデータを直接可視化するのは困難です。代わりに条件付きプロットを使いましょう。他の変数を固定(条件付け)した上で、残りの1〜2変数との関係を見ます。
例:気温、風速、日射量とオゾン濃度の関係を調べるとき、「気温と風速を固定して、日射量とオゾンの関係を見る」ことを複数の気温・風速の組み合わせで行います。
ユークリッド距離を使う前に、各変数を標準化(平均0、標準偏差1)することが重要です。これにより、単位の異なる変数(例:年齢(年)と所得(万円))を公平に扱えます。
構造を仮定するとバイアス(モデルの仮定が間違っている場合の誤差)が入りますが、分散(データのばらつきによる不安定さ)が減ります。どの程度の構造を仮定するかは、データのサイズと問題の複雑さに依存します。

核心: 高次元での局所回帰は、「そのまま使う」のではなく、「構造と組み合わせて使う」ことが成功の鍵です。
この章で学んだことを振り返りましょう。

次の章では、局所尤度法(ロジスティック回帰などを局所化)やカーネル密度推定について学びます。