あなたの主な関心が2次元の問題である場合、カーネル密度の推定は優れた漸近的な特性を持っているため、良い選択だと思います(これが最良であるとは言っていません)。例を見る
パーゼン、E(1962)。確率密度関数とモードの推定に関する。Annals of Mathematical Statistics 33:1065–1076。
de Valpine、P.(2004)。重み付き事後カーネル密度推定によるモンテカルロ状態空間尤度。Journal of the American Statistical Association 99:523-536。
より高い次元(4+)の場合、最適な帯域幅行列を推定することはよく知られている問題があるため、この方法は本当に遅くなります。を参照してください。
さて、ks
パッケージ内のコマンドの問題KDE
は、あなたが述べたように、それが特定のグリッドの密度を評価することです。この問題はKDE
、たとえばを使用して帯域幅行列を推定するためのパッケージを使用しHscv
、カーネル密度推定器を実装してから、コマンドを使用してこの関数を最適化すると解決できますoptim
。これを、シミュレーションデータとのガウスカーネルを使用して以下に示しますR
。
rm(list=ls())
# Required packages
library(mvtnorm)
library(ks)
# simulated data
set.seed(1)
dat = rmvnorm(1000,c(0,0),diag(2))
# Bandwidth matrix
H.scv=Hlscv(dat)
# [Implementation of the KDE](http://en.wikipedia.org/wiki/Kernel_density_estimation)
H.eig = eigen(H.scv)
H.sqrt = H.eig$vectors %*% diag(sqrt(H.eig$values)) %*% solve(H.eig$vectors)
H = solve(H.sqrt)
dH = det(H.scv)
Gkde = function(par){
return( -log(mean(dmvnorm(t(H%*%t(par-dat)),rep(0,2),diag(2),log=FALSE)/sqrt(dH))))
}
# Optimisation
Max = optim(c(0,0),Gkde)$par
Max
たとえば、形状制限のある推定量はより高速になる傾向があります。
Cule、ML、Samworth、RJおよびStewart、MI(2010)。多次元ログコンケーブ密度の最尤推定。Journal Royal Statistical Society B 72:545–600。
しかし、彼らはこの目的のためにピークに達しています。
4
使用を検討する可能性のある他の方法は、次のとおりです。
Abraham、C.、Biau、G.およびCadre、B.(2003)。多変量密度のモードの簡単な推定。カナダ統計統計 31:23–34。
これがお役に立てば幸いです。