カーネル回帰入門:Nadaraya–Watson推定量と局所線形回帰の理論・実務ガイド
カーネル回帰とは — 概要
カーネル回帰(kernel regression)は、非パラメトリックな回帰手法の一つで、観測データから回帰関数(説明変数 x に対する目的変数 y の条件付き期待値)を滑らかに推定する方法です。事前に関数の形状を仮定せず、各観測点の近傍に重みを付けて局所的に平均を取ることで推定します。代表的な形としてナダラヤ=ワトソン推定量(Nadaraya–Watson estimator)があり、局所線形回帰(local linear regression)などの発展形も広く使われます。
数学的定義(ナダラヤ=ワトソン推定量)
1次元の説明変数 x に対するナダラヤ=ワトソン推定量は次の形で表されます。
m̂(x) = ∑i=1n K((x − xi)/h) yi / ∑i=1n K((x − xi)/h)
ここで K はカーネル関数(非負で積分が1の平滑化関数)、h は帯域幅(バンド幅、bandwidth)です。直感的には、x に近い観測 xi に大きな重みを与え、それ以外は小さな重みを与えて局所平均を計算します。
主要な要素:カーネル関数と帯域幅(h)
カーネル関数 K:よく使われるものにガウス核(Gaussian)、エパネチニコフ核(Epanechnikov)、一様核(Uniform)、三角核(Triangular)などがあります。理論的には核の形は推定の一部に影響しますが、帯域幅の選び方ほど結果に大きく影響しないことが知られています。
帯域幅 h:カーネル回帰で最も重要なハイパーパラメータです。h が小さいほど推定はデータに忠実で“鋭い”推定(分散大・バイアス小)になり、h が大きいほど滑らかで“過度に平滑化”された推定(分散小・バイアス大)になります。これはバイアス-分散トレードオフの典型例です。
局所多項式回帰(local polynomial regression)
ナダラヤ=ワトソンは局所定数推定に相当しますが、局所線形回帰(local linear)やより高次の局所多項式回帰は、各点 x0 の周りで多項式を重み付き最小二乗でフィットする方法です。局所線形は境界でのバイアスが小さいという利点があり、一般に実務では局所線形が好まれます。
理論的性質と収束
一致性:適切に h→0 かつ n h→∞(一次元の場合)とすると、推定量は真の回帰関数に一貫して収束します。多次元では類似の条件を帯域幅パラメータ行列に対して課します。
最適収束率(ミニマックス):滑らかさ s の関数を次元 d で推定する場合、最小二乗誤差の最良収束率は n^{-2s/(2s+d)} です。例えば s=2(2回微分可能)では n^{-4/(4+d)} となり、次元 d が増えるほど収束が遅くなる「次元の呪い(curse of dimensionality)」が顕著です。
帯域幅の選び方
クロスバリデーション:一般的には leave-one-out などの交差検証で予測誤差を最小化する h を選びます。実装が簡単で広く使われます。
プラグイン法(rule-of-thumb / plug-in):分散や2次導関数の推定に基づき理論的に最適な h を計算する方法。密度推定のシルバーマンのルールのような近似もありますが、回帰固有のプラグイン公式も存在します。
その他:最小化する目的関数や目的(予測性能か解釈性か)により選択基準を変えることがあります。
高次元・実装上の注意点
次元の呪い:説明変数の次元が大きいと局所近傍に十分なサンプルが集まらず推定が不安定になります。次元削減(主成分分析など)や、部分空間での回帰、可変選択や構造(additive models)を導入することが一般的な対処法です。
計算コスト:観測点数 n と評価点数 m に対して単純実装は O(n m)。大規模データではKD-tree/ball-tree による近傍探索、近似高速ガウス変換(fast Gauss transform)、グリッド上での FFT を用いる等の高速化手法が使われます。
境界問題:データ領域の端ではバイアスが増えることがあり、局所線形法や境界補正を用いて対処します。
応用例と拡張
時系列のノイズ除去(平滑化)やトレンド推定。
非線形な回帰関係の可視化と探索的解析。
分類問題への応用(回帰関数の代わりにクラス条件確率を推定するカーネル密度比推定など)。
局所的な因果推定やコンプライアンス分析など、局所性を重視する分析。
カーネル回帰と「カーネル法」(再生核ヒルベルト空間)の違い
用語としての「カーネル」は共通しますが注意が必要です。ここでのカーネル回帰は観測点近傍に重みを付ける平滑化法を指します。一方、カーネルSVMやカーネルリッジ回帰などの「カーネル法」は再生核ヒルベルト空間(RKHS)を用いた手法で、内積を置き換えることで非線形な関係を線形問題に落とし込むアプローチです。両者は目的や理論が異なります(ただし名前の由来は類似性にあります)。
実務的なアドバイス
まずは局所線形回帰(local linear)を試す:境界バイアスに強く実用的。
帯域幅の選定は最重要:複数の方法(CV、プラグイン)で確認し、推定結果の感度を確認する。
高次元データではカーネル回帰単体は厳しい:特徴量選択や構造化モデルの併用を検討する。
実装ライブラリ:R の np、locfit、ks パッケージ、Python では statsmodels や scikit-learn の近傍回帰・密度推定モジュールを活用する(ただし機能の違いに注意)。
まとめ
カーネル回帰は柔軟で直感的な非パラメトリック回帰法で、局所的な重み付けによって回帰関数を滑らかに推定します。核関数自体よりも帯域幅の選択が性能に大きく影響し、次元の呪いや境界バイアスなど特有の課題があります。実務では局所線形回帰や交差検証による帯域幅選定、次元削減等と組み合わせて使うことが多いです。
参考文献
- Kernel regression — Wikipedia
- Nadaraya, E. A. (1964). On Estimating Regression. Theory of Probability & Its Applications
- Watson, G. S. (1964). Smooth Regression Analysis. Sankhyā
- Wasserman, L. (2006). All of Nonparametric Statistics
- Wand, M. P., & Jones, M. C. (1995). Kernel Smoothing. Cambridge University Press
- Fan, J., & Gijbels, I. (1996). Local Polynomial Modelling and Its Applications
- statsmodels: Nonparametric regression — statsmodels ドキュメント
- scikit-learn — Machine Learning in Python(実装・参考)


