カーネル密度推定
特定の分布形を先に決めず、標本の各値の周りに滑らかな山(カーネル)を重ねて、値の集まり方を表す密度曲線を推定する方法です。帯域幅で山の広がりを調整します。
特定の分布形を先に決めず、標本の各値の周りに滑らかな山(カーネル)を重ねて、値の集まり方を表す密度曲線を推定する方法です。帯域幅で山の広がりを調整します。
カーネル密度推定(kernel density estimation、KDE)は、標本から確率密度を推定する方法です。特定の確率分布の形を先に決めず、標本に基づいて密度曲線を作ります。
1次元では、各観測値の周りにカーネル関数で重みを置き、それらを重ねて密度曲線を推定します。標本を X_1, X_2, ..., X_n としたとき、推定量の代表的な形は次のとおりです(西山、2026、§2.1)。
f̂_h(x) = (1/(nh)) Σᵢ K((x − Xᵢ)/h)
ここで、n は観測値確率変数 X が試行を実行した結果として実際に観測された具体的な数値 x のこと。試行前の「値が定まっていない箱」が X、試行後に箱から出てきた「具体的な数」が x。の数、K はカーネル関数、h は帯域幅です。カーネル関数は、各観測値が曲線の各位置にどのような重みを与えるかを定めます。帯域幅はその重みの広がりを調整します。特定の確率分布の形を固定しない方法ですが、カーネル関数と帯域幅の選択は推定曲線に影響します。
帯域幅を大きくすると推定曲線は滑らかになり、小さくすると局所的な変動が表れやすくなります(西山、2026、§2.1)。帯域幅の具体的な尺度は実装によって異なることがあります。たとえば R の density では、平滑化カーネルの標準偏差標準偏差は、数値データが平均の周りにどの程度散らばるかを表す尺度で、分散の正の平方根です。分散の分母は、対象データ全体の記述か標本からの推定かによって異なります。を帯域幅として扱います(R Core Team)。
ヒストグラムはデータ範囲を区間(ビン)に分け、それぞれに入る観測数を数えて分布の形を示します(NIST/SEMATECH)。カーネル密度推定は、各観測値の周りに置いた重みを滑らかに重ねて密度を推定します。ビン幅はヒストグラムの区間の横幅、帯域幅はカーネルの重みの広がりであり、別の量です。
参照元のラボは、同じ標本を対象に、2本のスライダーで「形状(歪み)」と「ヒストグラムのビン幅・KDEの帯域幅」を動かせる文脈です。形状は分布の歪み、ビン幅はヒストグラムの区間幅、帯域幅はKDEで各観測値の重みを広げる尺度を指します。参照元の説明だけでは、2本それぞれのスライダーがこれらの量にどう対応するかまでは示されていません。標本値をそのままにしてビン幅を変えるとヒストグラムの区切り方が変わり、帯域幅を変えると推定曲線の滑らかさが変わります。
KDEは方法(kernel density estimation)を指すことも、推定された関数(kernel density estimator)を指すこともあります。日本語では推定された関数を「カーネル密度推定量」と呼びます。英語文献では推定量を Parzen–Rosenblatt estimator と呼ぶこともあります(西山、2026、§2.1;Hang et al.、2018、§1)。
density {stats}: Kernel Density Estimation.” 帯域幅を平滑化カーネルの標準偏差として扱う実装例。