Ich arbeite mit dem "Geysir" -Datensatz aus dem MASS-Paket und vergleiche Kernel-Dichteschätzungen des np-Pakets.
Mein Problem ist es, die Dichteschätzung unter Verwendung der Kreuzvalidierung der kleinsten Quadrate und des Epanechnikov-Kernels zu verstehen:
blep<-npudensbw(~geyser$waiting,bwmethod="cv.ls",ckertype="epanechnikov")
plot(npudens(bws=blep))
Für den Gaußschen Kernel scheint es in Ordnung zu sein:
blga<-npudensbw(~geyser$waiting,bwmethod="cv.ls",ckertype="gaussian")
plot(npudens(bws=blga))
Oder wenn ich den Epanechnikov-Kernel und Maximum Likelihood cv verwende:
bmax<-npudensbw(~geyser$waiting,bwmethod="cv.ml",ckertype="epanechnikov")
plot(npudens(~geyser$waiting,bws=bmax))
Ist es meine Schuld oder ist es ein Problem im Paket?
Bearbeiten: Wenn ich Mathematica für den Epanechnikov-Kernel und den Lebenslauf der kleinsten Quadrate verwende, funktioniert es:
d = SmoothKernelDistribution[data, bw = "LeastSquaresCrossValidation", ker = "Epanechnikov"]
Plot[{PDF[d, x], {x, 20,110}]
quelle