導関数のカーネル密度推定量に最適な帯域幅はありますか?


14

カーネル密度推定器を使用して、一連の観測に基づいて密度関数を推定する必要があります。同じ観測セットに基づいて、カーネル密度推定器の導関数を使用して密度の1次および2次導関数を推定する必要もあります。帯域幅は確かに最終結果に大きな影響を与えます。

まず、KDE帯域幅を提供するR関数がいくつかあることを知っています。どちらがより好ましいかわかりません。誰もがKDE帯域幅のためにこれらのR関数の1つを推奨できますか?

第二に、KDEの導関数について、同じ帯域幅を選択する必要がありますか?


密度については、帯域幅の選択は常に多少主観的です。狭すぎるので、本質的にノイズに追従する曲線の変動と、曲線が滑らかすぎて曲線の一部の実際の特徴を見落とす幅が広すぎるという問題があります。しかし、密度を推定して形状を見つけます。そのため、推定値をどの程度滑らかにするかを知るのは容易ではありません。デリバティブについては、知りたいデリバティブの機能に依存すると思います。
マイケルR.チャーニック

回答:


15

微分推定の最適な帯域幅は、密度推定の帯域幅とは異なります。一般に、密度のすべての機能には、独自の最適な帯域幅セレクタがあります。

目的が平均積分二乗誤差(これが通常の基準である)を最小化することである場合、それについて主観的なものはありません。基準を最小化するのは値を導き出すことです。方程式は、Hansen(2009)のセクション2.10に記載されています。

トリッキーな部分は、最適な帯域幅が密度自体の関数であるため、このソリューションは直接有用ではありません。その問題に対処しようとする方法はいくつかあります。これらは通常、通常の近似を使用して密度のいくつかの汎関数に近似します。(注、密度自体が正常であるという仮定はありません。仮定は、密度のいくつかの関数が正規性を仮定して取得できることです。)

近似が課される場所によって、帯域幅セレクターの品質が決まります。最も粗いアプローチは、「通常の参照規則」と呼ばれ、高レベルで近似を課します。Hansen(2009)のセクション2.10の終わりに、このアプローチを使用した公式が示されています。このアプローチは、CRAN hns()ksパッケージの関数に実装されています。おそらく、独自のコードを書きたくない場合に得られるものです。したがって、次のように密度の導関数を推定できます(を使用ks)。

library(ks)
h <- hns(x,deriv.order=1)
den <- kdde(x, h=h, deriv.order=1)

通常、「直接プラグイン」セレクターとして知られるより良いアプローチは、より低いレベルで近似を課します。直線密度推定の場合、これはを使用してRで実装されるSheather-Jonesメソッドdensity(x,bw="SJ")です。ただし、デリバティブ推定用のRパッケージで同様の機能が利用できるとは思いません。

ストレートカーネル推定を使用するよりも、ローカル多項式推定器を使用した方がよい場合があります。これは、R locpoly()ksパッケージの関数を使用して実行できます。再び、最適な帯域幅の選択は実装されていませんが、バイアスはカーネル推定器の場合よりも小さくなります。例えば、

den2 <- locpoly(x, bandwidth=?, drv=1) # Need to guess a sensible bandwidth

ありがとう、ロブ。密度推定にSJ帯域幅を使用する可能性があります。
user13154

微分推定のために、h <-hns(x)を使用した場合; den <-kdde(x、h = h、deriv.order = 1)は、推定に使用される最適な帯域幅です。これは、微分次数を指定せずにh <-hns(x)が選択されるためです。ありがとう。
user13154

Hansen(2009)のセクション2.10の最後にある式を確認しました。帯域幅は微分の次数、例えばrth微分に依存するようです。h <-hns(x)はrに依存していないようです。
user13154

hns関数には、微分の順序を指定できるderiv.order引数があることがわかりました。どうもありがとう、ロブ。
user13154

ごめんなさい。私はそれを省いた。修正されました。
ロブハインドマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.