El ancho de banda óptimo para la estimación derivada será diferente del ancho de banda para la estimación de densidad. En general, cada característica de una densidad tiene su propio selector de ancho de banda óptimo.
Si su objetivo es minimizar el error cuadrático medio integrado (que es el criterio habitual), no hay nada subjetivo al respecto. Se trata de derivar el valor que minimiza el criterio. Las ecuaciones se dan en la Sección 2.10 de Hansen (2009) .
La parte difícil es que el ancho de banda óptimo es una función de la densidad misma, por lo que esta solución no es directamente útil. Existen varios métodos para tratar de resolver ese problema. Estos usualmente se aproximan a algunos funcionales de la densidad usando aproximaciones normales. (Tenga en cuenta que no se asume que la densidad en sí misma es normal. La suposición es que se pueden obtener algunos funcionales de la densidad asumiendo la normalidad)
Donde se imponen las aproximaciones determina cuán bueno es el selector de ancho de banda. El enfoque más crudo se llama la "regla de referencia normal" que impone la aproximación a un nivel alto. El final de la Sección 2.10 en Hansen (2009) da la fórmula usando este enfoque. Este enfoque se implementa en la hns()
función del ks
paquete en CRAN. Probablemente sea lo mejor que obtendrá si no desea escribir su propio código. Entonces puede estimar la derivada de una densidad de la siguiente manera (usando ks
):
library(ks)
h <- hns(x,deriv.order=1)
den <- kdde(x, h=h, deriv.order=1)
Un mejor enfoque, generalmente conocido como selector de "conexión directa", impone la aproximación en un nivel inferior. Para la estimación de densidad directa, este es el método de Sheather-Jones, implementado en R usando density(x,bw="SJ")
. Sin embargo, no creo que haya una instalación similar disponible en ningún paquete R para la estimación derivada.
En lugar de utilizar la estimación directa del núcleo, es mejor que tenga un estimador polinómico local. Esto se puede hacer usando la locpoly()
función del ks
paquete en R. Una vez más, no hay una selección óptima de ancho de banda implementada, pero el sesgo será menor que para los estimadores del núcleo. p.ej,
den2 <- locpoly(x, bandwidth=?, drv=1) # Need to guess a sensible bandwidth