modèle avec odds proportionnels dans JAGS

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Sophie Dubois
Messages : 14
Enregistré le : 12 Mai 2014, 13:07

modèle avec odds proportionnels dans JAGS

Messagepar Sophie Dubois » 01 Aoû 2018, 09:17

Bonjour,

Je suis en train d'analyser une variable ordinale (échelle de 0 à 5). Je cherche à savoir si elle est influencée par deux variables catégorielles, dont l'une (famille, 362 niveaux) est nichée dans l'autre (prov, 25 niveaux). Je souhaite traiter les données en bayésien et pour cela, j'utilise JAGS. Pour le moment, les priors sont non informatifs.
Malheureusement, j'obtiens le message d'erreur suivant :
Error in jags.model(model.file, data = data, inits = init.values, n.chains = n.chains, :
RUNTIME ERROR:
Compilation error on line 25.
Attempt to redefine node betapro[11]

Et bien sur, je ne vois pas d'où vient le problème !

Voici mon script :

Code : Tout sélectionner

prov <- as.numeric(data$PRO)
famille <- as.numeric(data$DESC)

model <- "model{

for(i in 1:N){
mu[i] <- betapro[prov[i] + betadesc[famille[i]]
logit(Q[i,1]) <- alpha[1]-mu[i]
p[i,1] <- Q[i,1]

for(j in 2:5){
logit(Q[i,j]) <- alpha[j]-mu[i]
p[i,j] <- Q[i,j] - Q[i,j-1]
}

p[i,6] <- 1 - Q[i,5]

y[i] ~ dcat(p[i,])
}

## priors over thresholds
for(j in 1:5){
alpha0[j] ~ dnorm(0,1.0E-3)
}
alpha <- sort(alpha0)

for(i in 1:N) {
betapro[prov[i]] ~ dnorm(0,taupro)
betadesc[famille[i]] ~ dnorm(betapro[prov[i]], taudesc)
}

taupro ~ dgamma(0.01, 0.01)
taudesc ~ dgamma(0.01, 0.01)

}
"

writeLines(model,con="model_PRO_DESC.txt")

variable <- data$var + 1
datalist <- list(N=nrow(data), y=variable, prov=prov, famille=famille)

initiale <- list(alpha0 = c(-0.5, -0.25,0, 0.25, 0.5), betapro=rep(0,25), betadesc=rep(0, 362))
nchain <- 3
init <- list(list(alpha0=initiale$alpha0-2,
                  betapro=initiale$betapro-2,
                  betadesc=initiale$betadesc-2),
             initiale,
             list(alpha0=initiale$alpha0+2,
                  betapro=initiale$betapro+2,
                  betadesc=initiale$betadesc+2))

Nechantillons <- 10000

burnin <- 1000

eclair<-1

parameters <- c("alpha", "betapro")

DEB13_PRO_DESC <-jags(model.file="model_PRO_DESC.txt", data=datalist, n.chain = nchain, inits=init, parameters.to.save=parameters,
                      n.iter=Nechantillons, n.burnin=burnin, n.thin=eclair)


Est-ce que quelqu'un peut m'aider ?

Merci par avance !

Sophie

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité