Perhaps a better idea is to ask on a BUGS mailing list. BRugs is just an interface to OpenBUGS and is not involved in handling the BUGS language....

I'd also suggest to strat trying your problem witht BRugs but in OpenBUGS directly in order to avoid confusion caused by the interface.

Best wishes,
Uwe Ligges

On 19.04.2010 18:04, N S Ha wrote:

Thanks for the reply Bob, but it still does not work, you see. I ran this
model, just with the main effects and it ran fine.

n=length(bi.bmi)

Lgen=2
Lrace=5
Lagegp=13
Lstra=15
Lpsu=2

bi.bmi.model=function(){
# likelihood
for(i in 1:n){
        bi.bmi[i]~ dbern(p[i])
        logit(p[i])<- a0 + a1[agegp[i]]+a2[gen[i]]+a3[race[i]]
                            + g[stra[i]]+ u[psu[i],stra[i]]
                }
# constraints for a1, a2, a3
a1[1]<-0.0
a2[1]<-0.0
a3[1]<-0.0
# priors
a0~ dnorm(0.0, 1.0E-4)
for(j in 2:Lagegp){a1[j]~ dnorm(0.0, 1.0E-4)}
for(j in 2:Lgen){ a2[j]~ dnorm(0.0, 1.0E-4)}
for(k in 2:Lrace){ a3[k]~ dnorm(0.0, 1.0E-4)}

for(l in 1:Lstra){
        g[l]~dunif(0, 100)
        }
for( m in 1:Lpsu){
        for(l in 1:Lstra){
                u[m,l]~ dnorm(0.0, tau.u)
                }}
tau.u<-pow(sigma.u, -2)
sigma.u~ dunif(0.0,100)
}

library(BRugs)
writeModel(bi.bmi.model, con='bi.bmi.model.txt')
model.data=list( 'n','Lagegp', 'Lgen', 'Lrace', 'Lstra', 'Lpsu',                
                
                                'bi.bmi','agegp', 'gen', 'race','stra', 'psu')
model.init=function(){
        list( sigma.u=runif(1),
                a0=rnorm(1), a1=c(NA, rep(0,12)),
                a2=c(NA, rep(0, 1)),
                a3=c(NA, rep(0, 4)),
                g=rep(0,Lstra), u=matrix(rep(0, 30), nrow=2)    )
        }
model.parameters=c( 'a0', 'a1', 'a2', 'a3')
model.bugs=BRugsFit(modelFile='bi.bmi.model.txt',
                                   data=model.data,
                                   inits=model.init,
                                   numChains=1,
                                   para=model.parameters,
                                   nBurnin=50, nIter=100)

This is just with the main effects, and this does not give me any problems,
and I also ran the following model with interaction term between gen and
race, and it also ran fine.
for (i in 1:n){
        bi.bmi[i]~ dbern(p[i])
        logit(p[i])<- a0 + a1[agegp[i]]+a2[gen[i]]+a3[race[i]]
                           + a23[gen[i], race[i]]
                          + gam[stra[i]]+ u[psu[i],stra[i]]
                }
# constraints for a2, a3, a12 and a13
a1[1]<-0.0
a2[1]<-0.0
a3[1]<-0.0
a23[1,1]<-0.0

#gen x race
for(j in 2:Lrace){ a23[1,j]<-0.0}
for(k in 2:Lgen){ a23[k,1]<-0.0}
# priors
a0~ dnorm(0.0, 1.0E-4)
for(i in 2:Lagegp){a1[i]~dnorm(0.0, 1.0E-4)}
for(i in 2:Lgen){ a2[i]~ dnorm(0.0, 1.0E-4)}
for(i in 2:Lrace){ a3[i]~ dnorm(0.0, 1.0E-4)}
for(i in 2:Lgen){
        for(j in 2:Lrace){
                a23[i,j]~ dnorm(0.0, 1.0E-4)
        }}
for(i in 1:Lstra){
        gam[i]~dunif(0, 1000)
        }
for( i in 1:Lpsu){
        for(j in 1:Lstra){
                u[i,j]~ dnorm(0.0, tau.u)
                }}
tau.u<-pow(sigma.u, -2)
sigma.u~ dunif(0.0,100)
}

So, the error happens only when I try to plug in interaction with the agegp.
I still don't know how to correct it.
Thanks


______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to