Comment générer des prédictions avec rjags?

12

J'ai utilisé rjags pour exécuter MCMC sur un modèle, spécifié dans le langage JAGS. Existe-t-il un bon moyen d'extraire ce modèle et d'effectuer des prédictions avec lui (en utilisant les distributions postérieures de mes paramètres)? Je peux re-spécifier le modèle en R et brancher les modes de mes paramètres postérieurs; Je me demande simplement s'il existe une façon moins redondante de procéder.

Je pense que http://sourceforge.net/p/mcmc-jags/discussion/610037/thread/0ecab41c pose la même question.

Historien quantitatif
la source
Le lien est rompu. Pouvez-vous le mettre à jour, s'il vous plaît?
chl
Terminé. On dirait que Sourceforge a été réorganisé
Quantitative Historian
Merci! (Je n'ai pas trouvé le fil moi-même depuis que SF a changé leurs chemins relatifs.)
chl

Réponses:

8

Habituellement, vous pouvez faire les prédictions dans JAGS. Voici un exemple de régression avec le VEMS (quelque chose à voir avec la capacité pulmonaire) comme variable dépendante et comme indicateur de l'âge et du tabagisme comme prédicteurs.

Les FEV20 et FEV20ns sont les valeurs de FEV prévues pour un fumeur de 20 ans et un non-fumeur de 20 ans.

model
{
for(i in 1:n){
    FEV[i] ~ dnorm(mu[i],tau)
    mu[i] <- beta[1] + beta[2]*Age[i] + beta[3]*Smoke[i]  + beta[4]*Age[i]*Smoke[i]
}

#priors
beta[1] ~ dnorm(0,0.001)
beta[2] ~ dnorm(0,0.001)
beta[3] ~ dnorm(0,0.001)
beta[4] ~ dnorm(0,0.001)
tau ~ dgamma(0.001,0.001)
sigma<-1/sqrt(tau) 

## Predict the FEV for a 20 year old smoker and for a 20 year old nonsmoker
mu20s <-  beta[1] + (beta[2]+beta[4])*20 + beta[3]
mu20ns <-  beta[1] + beta[2]*20 
FEV20s ~ dnorm(mu20s,tau)
FEV20ns ~ dnorm(mu20ns,tau)
}

Exemple tiré des idées bayésiennes et de l'analyse des données

Glen
la source
Merci pour le pointeur - je n'avais pas pensé à envoyer simplement mes données de test dans JAGS, mais cela devrait le faire.
Historien quantitatif
1
Existe-t-il un moyen de générer ces prédictions sans avoir à réaménager l'ensemble du modèle? S'il y en avait, il serait assez facile de paralléliser massivement les prévisions de génération, cependant, si tout le modèle doit être réaménagé, ce n'est pas possible.
colin