Eu desenvolvi um estimador de densidade de kernel simples em Java, com base em algumas dezenas de pontos (talvez até cem) ou mais e uma função de kernel gaussiana. A implementação me fornece o PDF e o CDF da minha distribuição de probabilidade a qualquer momento.
Agora eu gostaria de implementar um método de amostragem simples para este KDE. Uma escolha óbvia seria, obviamente, extrair do próprio conjunto de pontos que compõem o KDE, mas eu gostaria de poder recuperar pontos que são um pouco diferentes daqueles do KDE.
Até agora, não encontrei uma técnica de amostragem que pudesse ser implementada com facilidade para resolver esse problema (sem depender de bibliotecas externas para integração numérica ou cálculos complexos). Algum conselho? Não tenho requisitos especialmente fortes quando se trata de precisão ou eficiência; minha principal preocupação é ter uma função de amostragem que funcione e possa ser facilmente implementada. Obrigado!
rnorm(n, sample(dx$x, n, prob = dx$y, replace = TRUE), dx$bw)
ondedx
é produzido a partir dadensity
função. O argumentoprob
deve ser fornecido porque, caso contrário, você fará uma amostragem uniforme.Respostas:
Conforme mencionado pelo Procrastinator, existe uma maneira simples de amostrar a partir de um estimador de densidade do Kernel:
fonte