Posso sottocampionare un set di dati di grandi dimensioni ad ogni iterazione MCMC?


8

Problema: voglio eseguire un campionamento di Gibbs per dedurre alcuni elementi posteriori su un set di dati di grandi dimensioni. Sfortunatamente, il mio modello non è molto semplice e quindi il campionamento è troppo lento. Considererei approcci variazionali o paralleli, ma prima di andare così lontano ...

Domanda: Vorrei sapere se potevo campionare casualmente (con la sostituzione) dal mio set di dati ad ogni iterazione di Gibbs, in modo da avere meno esempi da imparare ad ogni passo.

La mia intuizione è che anche se cambio i campioni, non cambierei la densità di probabilità e quindi il campione di Gibbs non dovrebbe notare il trucco. Ho ragione? Ci sono riferimenti a persone che hanno fatto questo?


1
A parte questo: un'altra idea sarebbe quella di fare analisi multiple su sottocampioni casuali del grande set di dati. In questo modo puoi anche validare in modo incrociato.
congetture

2
Non posso rispondere alla tua domanda esatta con nessuna autorità (anche se il mio sospetto è che tu stia solo aumentando l'errore di approssimazione che viene fornito con Monte Carlo), la triste verità è che questo è solo un aspetto sfortunato delle analisi bayesiane MCMC: sono computazionalmente costoso. Il commento di @conjectures è un'ottima idea, ma non è proprio al centro del problema: è troppo costoso disegnare tutti quei campioni per ogni individuo. La mia raccomandazione è di scrivere il proprio codice C per il lavoro pesante (Rcpp in R, Cython in Python, ecc.) E anche parallelizzare (quando non ci sono dipendenze di diramazioni).

1
@conjectures Sembra la borsa di piccoli stivali di Michael Jordan.
Jaradniemi,

1
Suggerirei di cambiare il campionatore per evitare del tutto l'aumento della variabile latente. Non avrai più un campionatore di Gibbs, ma un algoritmo Metropolis-Hastings con una proposta basata su una normale approssimazione della probabilità dovrebbe funzionare bene. Vedere la sezione 16.4 della 2a edizione di Bayesian Data Analysis.
Jaradniemi,

6
Questa è un'area di ricerca attiva che non conosco abbastanza bene da riassumere accuratamente per te. Vedi ad esempio jmlr.org/proceedings/papers/v32/bardenet14.pdf e arxiv.org/pdf/1304.5299v4.pdf
Andrew M

Risposte:


1

X1N(μ1,σ12)X2N(μ2,σ22)θ=(μ1,μ2,σ12,σ22)

f(θ|X1,X2)f(X1|θ)f(X2|θ)f(θ)
δB(0.5)δ=0X1δ=1X2
f(θ,δ|X1,X2)f(X1,X2|δ,θ)f(θ)f(δ)
f(X1,X2|δ,θ)=f(X1|θ)δf(X2|θ)1δf(δ)=0.5δf(X1|θ)f(X2|θ)P(δ=1)=f(X1|θ)f(X1|θ)+f(X2|θ)δf(X1|θ)f(X2|θ)f(X1|θ)f(X2|θ)δδ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.