Como gerar previsões com rjags?

12

Eu usei o rjags para executar o MCMC em um modelo, especificado na linguagem JAGS. Existe uma boa maneira de extrair esse modelo e executar previsões com ele (usando as distribuições posteriores dos meus parâmetros)? Posso re-especificar o modelo em R e conectar os modos dos meus parâmetros posteriores; Só estou me perguntando se existe uma maneira menos redundante de fazer isso.

Eu acredito que http://sourceforge.net/p/mcmc-jags/discussion/610037/thread/0ecab41c está fazendo a mesma pergunta.

Historiador Quantitativo
fonte
Link quebrado. Você pode atualizá-lo, por favor?
chl
Feito. Parece que o sourceforge foi reorganizado
Quantitative Historian
Obrigado! (Eu não encontrei o fio mim desde SF mudou seus caminhos relativos.)
chl

Respostas:

8

Geralmente você pode fazer as previsões no JAGS. Abaixo está um exemplo de regressão com VEF (algo relacionado à capacidade pulmonar) como variável dependente e indicador de idade e tabagismo como preditores.

VEF20s e VEF20ns são os valores previstos para um fumante de 20 anos e um não fumante de 20 anos.

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)
}

Exemplo de: Ideias Bayesianas e Análise de Dados

Glen
fonte
Obrigado pelo ponteiro - eu não tinha pensado em apenas enviar meus dados de teste para o JAGS, mas isso deveria ser feito.
Quantitative Historian
1
Existe uma maneira de gerar essas previsões sem precisar reajustar o modelo inteiro? Se houvesse, seria fácil o suficiente para paralelizar massivamente as previsões geradoras; no entanto, se todo o modelo precisar ser reajustado, isso não será possível.
precisa