Puis-je sous-échantillonner un grand ensemble de données à chaque itération MCMC?

8

Problème: je veux effectuer un échantillonnage de Gibbs pour en déduire une partie postérieure sur un grand ensemble de données. Malheureusement, mon modèle n'est pas très simple et donc l'échantillonnage est trop lent. J'envisagerais des approches variationnelles ou parallèles, mais avant d'aller aussi loin ...

Question: Je voudrais savoir si je pourrais échantillonner au hasard (avec remplacement) à partir de mon ensemble de données à chaque itération de Gibbs, afin d'avoir moins d'instances à apprendre à chaque étape.

Mon intuition est que même si je change les échantillons, je ne changerais pas la densité de probabilité et donc l'échantillon de Gibbs ne devrait pas remarquer l'astuce. Ai-je raison? Y a-t-il des références de personnes ayant fait cela?

alberto
la source
1
Soit dit en passant: une autre idée serait de faire plusieurs analyses sur des sous-échantillons aléatoires du grand ensemble de données. De cette façon, vous pouvez également effectuer une validation croisée.
conjectures
2
Je ne peux répondre à votre question exacte avec aucune autorité (bien que je soupçonne que vous augmenteriez simplement l'erreur d'approximation qui accompagne Monte Carlo), la triste vérité est que ce n'est qu'un aspect malheureux des analyses bayésiennes MCMC: elles sont de calcul coûteux. Le commentaire @conjectures est une excellente idée, mais ne va pas vraiment au cœur du problème: il est trop coûteux de tirer tous ces échantillons pour chaque individu. Ma recommandation est d'écrire votre propre code C pour le travail lourd (Rcpp en R, Cython en Python, etc.) et également de paralléliser (quand aucune dépendance de branche).
1
@conjectures Cela ressemble au sac de petits bootstraps de Michael Jordan.
jaradniemi
1
Je suggérerais de changer votre échantillonneur pour éviter complètement l'augmentation variable latente. Vous n'aurez plus d'échantillonneur Gibbs, mais un algorithme Metropolis-Hastings avec une proposition basée sur une approximation normale de la probabilité devrait très bien fonctionner. Voir la section 16.4 de la 2e édition de Bayesian Data Analysis.
jaradniemi
6
Il s'agit d'un domaine de recherche active que je ne connais pas assez bien pour vous résumer avec précision. Voir par exemple jmlr.org/proceedings/papers/v32/bardenet14.pdf et arxiv.org/pdf/1304.5299v4.pdf
Andrew M

Réponses:

1

À propos des stratégies de sous-échantillonnage: envisagez par exemple d'avoir deux observations et et envisagez de mettre quelques a priori sur la moyenne et variance. Soit , le postérieur que nous voulons évaluer est Considérez maintenant une variable binomiale . Si nous avons choisi , si nous avons choisi , le nouveau postérieur est où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δ et . Maintenant, si vous voulez échantillonner avec une étape de Gibbs, vous devez calculer et parce que . Si vous utilisez autrement Metropolis Hastings, vous proposez un nouvel état et vous ne devez en calculer qu'un seul entre et , celui associé aux états proposés mais vous avoir à en calculer un entre etf(δ)=0.5δf(X1|θ)f(X2|θ) δf(X1|θ)f(X2|θ)f(X1|θ)f(X2|θ)δδP(δ=1)=f(X1|θ)f(X1|θ)+f(X2|θ)δf(X1|θ)f(X2|θ)f(X1|θ)f(X2|θ)même pour le dernier état accepté de . Alors je ne suis pas sûr que la métropole vous donnera un avantage. De plus, nous envisageons ici un processus bivarié, mais avec un processus multivarié, l'échantillonnage des peut être très compliqué avec la métropole.δδ
niandra82
la source