Eu tenho visto uma quantidade razoável de literatura sobre como escolher kernels e larguras de banda ao calcular uma estimativa de densidade de kernel, mas atualmente estou interessado em como melhorar o tempo necessário para avaliar o KDE resultante em um número arbitrário de pontos.
No meu caso, estou usando um kernel Gaussiano multidimensional (2D ou 3D) com covariância diagonal (ou seja, cada dimensão é independente). As larguras de banda em cada dimensão podem diferir e são selecionadas usando os vizinhos mais próximos. No entanto, minha pergunta provavelmente se estende a diferentes métodos de seleção de kernels e largura de banda.
Digamos que tenho pontos de dados e desejo avaliar o KDE resultante em pontos de grade. Uma implementação simples envolve a avaliação dos tempos normais de pdf multivariados . Para meus propósitos, e estão na ordem de milhares e a avaliação se tornou o gargalo no meu código.
Não sei se existem melhorias geralmente aceitas nesse método básico. Eu encontrei este artigo, que afirma reduzir a complexidade de para . No entanto, o método não foi implementado em nenhuma biblioteca 'padrão' R ou Python que eu conheço - o que sugere que ele ainda não foi amplamente adotado?
Obrigado por todas as dicas que você pode dar.