Simular a partir da estimativa de densidade do kernel (PDF empírico)

8

Eu tenho um vetor Xde N=900observaçõ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):

insira a descrição da imagem aqui

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:

insira a descrição da imagem aqui

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.

Antoine
fonte
1
O experimento de bootstrap fornece uma indicação da variabilidade da estimativa de densidade do kernel. Isso não tem nada a ver com a simulação do kernel, como melhor explicado por Dougal abaixo.
Xian
Sim, isso é bastante variado. Você acha que um KDE seria uma abordagem melhor do que um modelo de mistura dinâmica aqui?
Antoine
então, eu entendo que o bootstrap suave, como mostrado acima, não é equivalente à simulação no Kernel. No entanto, ele realiza o mesmo objetivo: simular a partir do PDF empírico, certo? Vou tentar postar os resultados da estratégia proposta por Douglas abaixo (simulando diretamente do KDE) para comparar quando tiver tempo.
Antoine
Simular a partir do estimador do kernel não leva a simulações do cdf empírico e não há uma definição clara de um pdf empírico entre histogramas e estimativas do kernel, todas as quais requerem calibração da largura de banda.
Xi'an
Não concordo com o seu primeiro comentário, por favor veja a minha resposta abaixo.
Antoine

Respostas:

10

f(x)=1Ni=1Nfi(x)

  • i
  • fi

Deve ficar claro que isso produz uma amostra exata.

1Ni=1NN(x;xi,h2)Nxih2

Seu snippet de código está selecionando vários xi

  • xiμ^+xiμ^1+h2/σ^2
  • adicionando ruído normal médio zero com variação h21+h2/σ^2=11h2+1σ^2h2σ2

Podemos ver que o valor esperado de uma amostra de acordo com este procedimento é

1Ni=1Nxi1+h2/σ^2+μ^11+h2/σ^2μ^=μ^
μ^=1Ni=1Nxi

Não acho que a distribuição da amostra seja a mesma.

Dougal
fonte
obrigado por esta boa resposta. Atualmente, estou explorando essa abordagem. Você daria uma olhada nesse outro tópico muito recente (e um tanto relacionado), por favor? Desde já, obrigado.
Antoine
3

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.

YisKhy^y^ explicitamente:

Y{X1,...Xn}

  • i{1,...,n}
  • ϵKK
  • Y=X¯+(XiX¯+h.ϵ)/1+h2σK2/σX2

X¯σX2σK2KKX¯σX2Y=Xi+h.ϵ

O trecho de código R na minha pergunta acima segue rigorosamente esse algoritmo.

As vantagens do bootstrap suavizado sobre o bootstrap são:

  • "características espúrias" nos dados não são reproduzidas, pois podem ser gerados valores diferentes dos da amostra,
  • valores além do máximo / min das observações podem ser gerados.
Antoine
fonte