Les deux bayesglm()
(dans le bras package R) et diverses fonctions dans le paquet MCMCpack sont destinés à faire l' estimation bayésienne des modèles linéaires généralisés, mais je ne suis pas sûr qu'ils calcul fait la même chose. Les fonctions MCMCpack utilisent la chaîne de Markov Monte Carlo pour obtenir un échantillon (dépendant) de la jointure postérieure pour les paramètres du modèle. bayesglm()
, d'autre part, produit. Je ne sais pas quoi.
Il semble bayesglm()
produire une estimation ponctuelle, ce qui en ferait une estimation MAP (maximum a posteriori) plutôt qu'une estimation bayésienne complète, mais il existe une sim()
fonction qui semble pouvoir être utilisée pour obtenir des tirages postérieurs.
Quelqu'un peut-il expliquer la différence d'utilisation prévue pour les deux? Peut-il bayesglm() + sim()
produire de vrais tracés postérieurs, ou s'agit-il d'une sorte d'approximation?
la source
Réponses:
Pour voir le code source complet, vous devez télécharger la
arm
source du package à partir de CRAN (c'est une archive tar). Un regard rapide sur lasim
fonction me fait penser qu'ilarm
s'agit d'une méthode bayésienne approximative car elle semble supposer une normalité multivariée des estimations du maximum de vraisemblance. Dans les modèles à probabilité logarithmique très non quadratique, comme le modèle logistique binaire, il est peu probable que cela soit suffisamment précis. J'aimerais obtenir des commentaires des autres à ce sujet. J'ai utiliséMCMCpack
avec succès; il fournit une solution bayésienne exacte pour de nombreux modèles, étant donné suffisamment de tirages postérieurs et de convergence de MCMC.la source