Posso subamostrar um grande conjunto de dados a cada iteração do MCMC?

8

Problema: quero realizar uma amostragem de Gibbs para inferir algumas posteriores em um grande conjunto de dados. Infelizmente, meu modelo não é muito simples e, portanto, a amostragem é muito lenta. Eu consideraria abordagens variacionais ou paralelas, mas antes de ir tão longe ...

Pergunta: Gostaria de saber se poderia amostrar aleatoriamente (com substituição) do meu conjunto de dados a cada iteração Gibbs, para que eu tenha menos instâncias para aprender a cada etapa.

Minha intuição é que, mesmo que eu mude as amostras, eu não estaria alterando a densidade de probabilidade e, portanto, a amostra de Gibbs não deve perceber o truque. Estou certo? Existem algumas referências de pessoas que fizeram isso?

Alberto
fonte
11
Como um aparte: outra idéia seria fazer várias análises em subamostras aleatórias do grande conjunto de dados. Dessa forma, você também pode validar cruzadamente.
conjectures
2
Não posso responder sua pergunta exata com nenhuma autoridade (embora minha suspeita seja que você estaria apenas aumentando o erro de aproximação que vem com Monte Carlo), a triste verdade é que esse é apenas um aspecto infeliz das análises bayesianas do MCMC: elas são computacionalmente caro. O comentário das @conjectures é uma ótima idéia, mas não chega ao cerne da questão: é muito caro coletar todas essas amostras para cada indivíduo. Minha recomendação é escrever seu próprio código C para o trabalho pesado (Rcpp em R, Cython em Python, etc.) e também paralelizar (quando não houver dependências de ramificação).
11
@conjectures Parece o saco de pequenas botas de Michael Jordan.
jaradniemi
11
Eu sugeriria alterar seu amostrador para evitar o aumento da variável latente por completo. Você não terá mais um amostrador Gibbs, mas um algoritmo Metropolis-Hastings com uma proposta baseada em uma aproximação normal da probabilidade deve funcionar bem. Veja a Seção 16.4 da 2ª edição da Análise Bayesiana de Dados.
jaradniemi
6
Esta é uma área de pesquisa ativa que eu não conheço bem o suficiente para resumir com precisão para você. Veja, por exemplo, jmlr.org/proceedings/papers/v32/bardenet14.pdf e arxiv.org/pdf/1304.5299v4.pdf
Andrew M

Respostas:

1

Sobre as estratégias de subamostragem: considere, por exemplo, duas observações e X 2N ( μ 2 , σ 2 2 ) e considere colocar alguns antecedentes na média e variância. Seja θ = ( μ 1 , μ 2 , σ 2 1 , σ 2 2 ) , o posterior que queremos avaliar é f (X1 1N(μ1 1,σ1 12)X2N(μ2,σ22)θ=(μ1 1,μ2,σ1 12,σ22) X 1 , se δ = 1 , escolhemos X 2 , o novo posterior é f ( θ , δ | Considere agora uma variável binomial δ B ( 0,5 ) . Se δ = 0 , escolhemos X 1 , X 2 ) f ( X 1 , X 2 | δ , θ ) f ( θ ) f ( δ ) onde f ( X 1 ,

f(θ|X1 1,X2)f(X1 1|θ)f(X2|θ)f(θ)
δB(0,5)δ=0 0X1 1δ=1 1X2
f(θ,δ|X1 1,X2)f(X1 1,X2|δ,θ)f(θ)f(δ)
ef(X1 1,X2|δ,θ)=f(X1 1|θ)δf(X2|θ)1 1-δ Agora, se você quiser amostra. δ com um passo Gibbs você tem que compute f ( X 1 | θ ) e f ( X 2 | θf(δ)=0,5δf(X1 1|θ) porque P ( δ = 1 ) = f ( X 1 | q )f(X2|θ) . Se você utilizar de outra forma o Metropolis Hastings, então você propor um novo estadoδ*e você tem que calcular apenas um entref(X1|q)ef(XP(δ=1 1)=f(X1 1|θ)f(X1 1|θ)+f(X2|θ)δf(X1 1|θ) , aquele associado com os estados propostos, mas você tem que calcular um entre f ( X 1 | q ) e f ( Xf(X2|θ)f(X1 1|θ) mesmo para o último estado aceito de δ . Então não tenho certeza de que a metrópole lhe dará alguma vantagem. Além disso, aqui estamos considerando um processo bivariado, mas com um processo multivariado a amostragem dos δ s pode ser muito complicada com a metrópole.f(X2|θ)δδ
niandra82
fonte