¿Puedo submuestrear un gran conjunto de datos en cada iteración de MCMC?

8

Problema: quiero realizar un muestreo de Gibbs para inferir algo posterior sobre un gran conjunto de datos. Desafortunadamente, mi modelo no es muy simple y, por lo tanto, el muestreo es demasiado lento. Consideraría enfoques variacionales o paralelos, pero antes de llegar tan lejos ...

Pregunta: Me gustaría saber si podría muestrear aleatoriamente (con reemplazo) de mi conjunto de datos en cada iteración de Gibbs, de modo que tenga menos instancias de las cuales aprender en cada paso.

Mi intuición es que incluso si cambio las muestras, no estaría cambiando la densidad de probabilidad y, por lo tanto, la muestra de Gibbs no debería notar el truco. Estoy en lo cierto? ¿Hay algunas referencias de personas que hayan hecho esto?

alberto
fuente
1
Como comentario: otra idea sería hacer múltiples análisis en submuestras aleatorias del gran conjunto de datos. De esa manera, también puede realizar una validación cruzada.
conjeturas
2
No puedo responder a su pregunta exacta con ninguna autoridad (aunque sospecho que solo aumentaría el error de aproximación que viene con Monte Carlo), la triste verdad es que este es solo un aspecto desafortunado de los análisis Bayesian MCMC: son computacionalmente costoso. El comentario de @conjectures es una gran idea, pero en realidad no es el centro del problema: es demasiado costoso extraer todas esas muestras para cada individuo. Mi recomendación es escribir su propio código C para el trabajo pesado (Rcpp en R, Cython en Python, etc.) y también paralelizar (cuando no hay dependencias de ramificación).
1
@conjeturas Esto suena como la bolsa de pequeñas botas de Michael Jordan.
jaradniemi
1
Sugeriría cambiar su muestra para evitar el aumento variable latente por completo. Ya no tendrá una muestra de Gibbs, pero un algoritmo de Metropolis-Hastings con una propuesta basada en una aproximación normal a la probabilidad debería funcionar bien. Consulte la Sección 16.4 de la 2da edición de Bayesian Data Analysis.
jaradniemi
66
Esta es un área de investigación activa que no conozco lo suficientemente bien como para resumirlo con precisión. Ver por ejemplo jmlr.org/proceedings/papers/v32/bardenet14.pdf y arxiv.org/pdf/1304.5299v4.pdf
Andrew M

Respuestas:

1

Acerca de las estrategias de submuestreo: solo por ejemplo, considere tener dos observaciones y X 2N ( μ 2 , σ 2 2 ) y considere poner algunas prioridades en la media y la varianza. Deje θ = ( μ 1 , μ 2 , σ 2 1 , σ 2 2 ) , el posterior que queremos evaluar es f (X1N(μ1,σ12)X2N(μ2,σ22)θ=(μ1,μ2,σ12,σ22) COnsider ahora una variable binomial δ B ( 0.5 ) . Si δ = 0 elegimos X 1 , si δ = 1 elegimos X 2 , el nuevo posterior es f ( θ , δ |

F(θEl |X1,X2)F(X1El |θ)F(X2El |θ)F(θ)
δsi(0,5)δ=0 0X1δ=1X2 donde f ( X 1 , X 2 | δ , θ ) = f ( X 1 | θ ) δ f ( X 2 | θ ) 1 - δ y
F(θ,δEl |X1,X2)F(X1,X2El |δ,θ)F(θ)F(δ)
F(X1,X2El |δ,θ)=F(X1El |θ)δF(X2El |θ)1-δ . Ahora bien, si quieres probar δ con un paso de Gibbs tiene para calcular f ( X 1 | theta ) y f ( X 2 | theta ) porque P ( δ = 1 ) = f ( X 1 | theta )F(δ)=0,5δF(X1El |θ)F(X2El |θ) . Si de lo contrario utiliza el Metropolis Hastings entonces proponer un nuevo estadoδ*y hay que calcular solamente una entref(X1|theta)yf(X2|theta), el asociado a los estados propuestos, pero hay que calcular uno entref(X1|theta)yf(XPAG(δ=1)=F(X1El |θ)F(X1El |θ)+F(X2El |θ)δF(X1El |θ)F(X2El |θ)F(X1El |θ) incluso para el último estado aceptado de δ . Entonces no estoy seguro de que la metrópoli le dé alguna ventaja. Además, aquí estamos considerando un proceso bivariado, pero con un proceso multivariado, el muestreo de los δ s puede ser muy complicado con la metrópoli.F(X2El |θ)δδ
niandra82
fuente