Eu tenho um vetor X
de N=900
observações que são melhor modeladas por um estimador de densidade de Kernel de largura de banda global (modelos paramétricos, incluindo modelos de mistura dinâmica, acabaram não sendo bons ajustes):
Agora, eu quero simular a partir deste KDE. Eu sei que isso pode ser alcançado através da inicialização.
Em R, tudo se resume a essa linha simples de código (que é quase pseudo-código): x.sim = mean(X) + { sample(X, replace = TRUE) - mean(X) + bw * rnorm(N) } / sqrt{ 1 + bw^2 * varkern/var(X) }
onde o bootstrap suavizado com correção de variação é implementado e varkern
é a variação da função Kernel selecionada (por exemplo, 1 para um Kernel Gaussiano ).
O que obtemos com 500 repetições é o seguinte:
Funciona, mas tenho dificuldade em entender como as observações aleatórias (com algum ruído adicional) são a mesma coisa que simular a partir de uma distribuição de probabilidade? (a distribuição está aqui no KDE), como no Monte Carlo padrão. Além disso, o bootstrap é a única maneira de simular a partir do KDE?
EDIT: veja minha resposta abaixo para obter mais informações sobre o bootstrap suavizado com correção de variação.
Respostas:
Deve ficar claro que isso produz uma amostra exata.
Seu snippet de código está selecionando váriosxi
Podemos ver que o valor esperado de uma amostra de acordo com este procedimento é
Não acho que a distribuição da amostra seja a mesma.
fonte
Para eliminar qualquer confusão sobre se é possível ou não desenhar valores do KDE usando uma abordagem de autoinicialização, é possível . O bootstrap não se limita a estimar intervalos de variabilidade.
O trecho de código R na minha pergunta acima segue rigorosamente esse algoritmo.
As vantagens do bootstrap suavizado sobre o bootstrap são:
fonte