A largura de banda ideal para estimativa de derivada será diferente da largura de banda para estimativa de densidade. Em geral, todos os recursos de uma densidade têm seu próprio seletor de largura de banda ideal.
Se seu objetivo é minimizar o erro quadrado integrado médio (que é o critério usual), não há nada subjetivo sobre ele. É uma questão de derivar o valor que minimiza o critério. As equações são dadas na Seção 2.10 de Hansen (2009) .
A parte complicada é que a largura de banda ideal é uma função da própria densidade, portanto, essa solução não é diretamente útil. Existem vários métodos para tentar lidar com esse problema. Eles geralmente aproximam alguns funcionais da densidade usando aproximações normais. (Observe que não há suposição de que a densidade em si seja normal. A suposição é que alguns funcionais da densidade podem ser obtidos assumindo a normalidade.)
Onde as aproximações são impostas determina quão bom é o seletor de largura de banda. A abordagem mais grosseira é chamada "regra de referência normal", que impõe a aproximação em um nível alto. O final da Seção 2.10 em Hansen (2009) fornece a fórmula usando essa abordagem. Essa abordagem é implementada na hns()
função do ks
pacote no CRAN. Provavelmente é o melhor que você terá se não quiser escrever seu próprio código. Portanto, você pode estimar a derivada de uma densidade da seguinte forma (usando ks
):
library(ks)
h <- hns(x,deriv.order=1)
den <- kdde(x, h=h, deriv.order=1)
Uma abordagem melhor, geralmente conhecida como seletor "plug-in direto", impõe a aproximação em um nível inferior. Para estimativa de densidade reta, este é o método de Sheather-Jones, implementado em R usando density(x,bw="SJ")
. No entanto, não creio que exista uma instalação semelhante disponível em qualquer pacote R para estimativa de derivadas.
Em vez de usar a estimativa direta do kernel, você pode estar melhor com um estimador polinomial local. Isso pode ser feito usando a locpoly()
função do ks
pacote em R. Novamente, não há uma seleção ideal de largura de banda implementada, mas o viés será menor do que para os estimadores de kernel. por exemplo,
den2 <- locpoly(x, bandwidth=?, drv=1) # Need to guess a sensible bandwidth