カーネル密度推定

提供: miniwiki
2018/8/19/ (日) 17:02時点におけるAdmin (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索
ファイル:Kernel density.svg
正規分布の100個の乱数と異なる平滑化帯域幅によるカーネル密度推定。

カーネル密度推定(カーネルみつどすいてい、: Kernel density estimation)は、統計学において、確率変数確率密度関数推定するノンパラメトリック手法のひとつ。エマニュエル・パルツェンの名をとってパルツェン窓: Parzen window)とも。大まかに言えば、ある母集団標本のデータが与えられたとき、カーネル密度推定を使えばその母集団のデータを外挿できる。

ヒストグラムは、一様なカーネル関数によるカーネル密度推定量と見ることもできる。

定義

x1, x2, ..., xn を(未知の)確率密度関数 ƒ を持つ独立同分布からの標本とする。カーネル関数 K、バンド幅(平滑化パラメータ)hカーネル密度推定量: kernel density estimator)とは

[math]\hat{f}_h(x)=\frac{1}{nh}\sum_{i=1}^n K\left(\frac{x-x_i}{h}\right)[/math]

のことである[1]。カーネル関数としては、標準的なガウス関数

[math]K(x) = {1 \over \sqrt{2\pi} }\,e^{-x^2/2}[/math]

平均がゼロで分散が1)を採用することが多い。

直観的説明

あまり平滑でない推定器(例えばヒストグラム密度推定器)は漸近的に一致させられるが、他の推定器は不連続であるか、カーネル密度推定より収束が遅い。カーネル密度推定器は、標本を一定幅の箱に入れて数えるのではなく、カーネル関数から決定されたコブを各標本に与えるものと見ることができる。つまり、「コブの総和」によって推定が形成されるため、結果として非常に滑らかになる(下図参照)。

ファイル:Parzen window illustration.svg
6つのガウス曲線(赤)とそれらの総和(青)。パルツェン窓密度推定 f(x) は、この総和を6(元のガウス曲線の数)で割ることで得られる。ガウス関数の分散は 0.5 に設定されている。見ての通り、標本点が稠密にあるほど、密度推定値は大きくなる。

特性

確率密度関数 ƒ の L2 リスク関数[math]R(f,\hat f(x))[/math] とする。確率密度関数 ƒ とカーネル関数 K に関する弱い仮定から次が得られる。

[math]R(f,\hat f(x)) \approx \frac{1}{4}\sigma_k^4h^4\int(f''(x))^2\,dx + \frac{\int K^2(x)\,dx}{nh}\text{ where }\sigma_K^2 = \int x^2K(x)\,dx[/math]

理論的リスク関数を最小化することで、最適なバンド幅は以下のように示される。

[math]h^* = \frac{c_1^{-2/5}c_2^{1/5}c_3^{-1/5}}{n^{1/5}}[/math]

ここで

[math]c_1 = \int x^2K(x)\,dx[/math]
[math]c_2 = \int K(x)^2\,dx[/math]
[math]c_3 = \int (f''(x))^2\,dx[/math]

である。最適なバンド幅を選択したとき、リスク関数は [math]R(f, \hat f(x)) \approx c_4 / n^{4/5}[/math] であり c4 > 0 はある定数である。弱い仮定の下で、カーネル推定器より早く収束するノンパラメトリックな推定器は存在しないことが示される。なお、n−4/5 という収束レートは、パラメトリックな手法での典型である n−1 という収束レートよりも遅い。

実装例

  • MATLAB - カーネル密度推定は ksdensity 関数で実装されている。
  • Origin - 2Dカーネル密度プロットがユーザーインターフェースより作画できるほか、Ksdensity(1D用)とKs2density(2D用)の両関数がLabTalk言語PythonC言語からアクセス可能である。
  • PAST - Plot項目の中のHistogramで,カーネル曲線が描ける。
  • R言語 - density 関数で実装されている。
  • Stata - kdensity で実装されている。例えば、histogram x, kdensity
  • SAS - proc kde は1変量または2変量のカーネル密度推定に使われる。

脚注

参考文献

  • Duda, R. and Hart, P. (1973). Pattern Classification and Scene Analysis. John Wiley & Sons. ISBN 0-471-22361-1.
  • Parzen E. (1962). On estimation of a probability density function and mode, Ann. Math. Stat. 33, pp. 1065-1076.
  • (1986) Density estimation for statistics and data analysis, Monographs on Statistics and Applied Probability. Chapman & Hall, London. ISBN 0-412-24620-1. 
  • Wasserman, L. (2005). All of Statistics: A Concise Course in Statistical Inference, Springer Texts in Statistics.

関連項目

外部リンク