En général, je suggérerais fortement de ne pas coder votre propre MCMC pour une véritable analyse bayésienne appliquée. C'est à la fois beaucoup de travail et de temps et très susceptible d'introduire des bogues dans le code. Les échantillonneurs Blackbox, tels que Stan, utilisent déjà des échantillonneurs très sophistiqués. Croyez-moi, vous ne coderez pas un échantillonneur de ce calibre pour une seule analyse!
Il y a des cas particuliers où cela ne sera pas suffisant. Par exemple, si vous deviez effectuer une analyse en temps réel (c'est-à-dire une décision informatique basée sur des données entrantes), ces programmes ne seraient pas une bonne idée. En effet, Stan nécessite la compilation de code C ++, ce qui peut prendre beaucoup plus de temps que l'exécution d'un échantillonneur déjà préparé pour des modèles relativement simples. Dans ce cas, vous souhaiterez peut-être écrire votre propre code. De plus, je pense qu'il y a des cas particuliers où des paquets comme Stan font très mal, comme les modèles d'espace d'état non gaussiens (divulgation complète: je crois que Stan fait mal dans ce cas, mais je ne sais pas). Dans ce cas, il peut être utile d'implémenter un MCMC personnalisé. Mais c'est l'exception, pas la règle!
Pour être tout à fait honnête, je pense que la plupart des chercheurs qui écrivent des échantillonneurs pour une seule analyse (et cela arrive, je l'ai vu) le font parce qu'ils aiment écrire leurs propres échantillonneurs. À tout le moins, je peux dire que je tombe dans cette catégorie (c'est-à-dire que je suis déçu que l'écriture de mon propre échantillonneur ne soit pas la meilleure façon de faire les choses).
De plus, même si cela n'a pas de sens d'écrire votre propre échantillonneur pour une seule analyse , il peut être très logique d'écrire votre propre code pour une classe d'analyses.. Étant donné que les JAG, Stan, etc. sont des échantillonneurs à boîte noire, vous pouvez toujours accélérer les choses en vous spécialisant pour un modèle donné, bien que le degré d'amélioration dépend du modèle. Mais écrire un échantillonneur extrêmement efficace à partir de zéro représente peut-être 10 à 1 000 heures de travail, selon l'expérience, la complexité du modèle, etc. Si vous faites des recherches sur les méthodes bayésiennes ou que vous écrivez des logiciels statistiques, c'est bien; c'est ton boulot. Mais si votre patron dit "Hé, pouvez-vous analyser cet ensemble de données de mesures répétées?" et que vous passez 250 heures à écrire un échantillonneur efficace, votre patron sera probablement contrarié. En revanche, vous auriez pu écrire ce modèle dans Stan en, disons, 2 heures et avoir eu 2 minutes de temps de fonctionnement au lieu du temps de 1 minute atteint par l'échantillonneur efficace.