Estou trabalhando com o conjunto de dados "geyser" do pacote MASS e comparando as estimativas de densidade de kernel do pacote np.
Meu problema é entender a estimativa de densidade usando a validação cruzada de mínimos quadrados e o kernel Epanechnikov:
blep<-npudensbw(~geyser$waiting,bwmethod="cv.ls",ckertype="epanechnikov")
plot(npudens(bws=blep))
Para o kernel gaussiano, parece estar bem:
blga<-npudensbw(~geyser$waiting,bwmethod="cv.ls",ckertype="gaussian")
plot(npudens(bws=blga))
Ou se eu usar o kernel Epanechnikov e a probabilidade máxima de cv:
bmax<-npudensbw(~geyser$waiting,bwmethod="cv.ml",ckertype="epanechnikov")
plot(npudens(~geyser$waiting,bws=bmax))
É minha culpa ou é um problema no pacote?
Edit: Se eu usar o Mathematica para o kernel Epanechnikov e menos quadrados cv, ele está funcionando:
d = SmoothKernelDistribution[data, bw = "LeastSquaresCrossValidation", ker = "Epanechnikov"]
Plot[{PDF[d, x], {x, 20,110}]
fonte