[R] BRugs

flipha23 neungsoo.ha at gmail.com
Mon Apr 19 06:04:40 CEST 2010


Hi. I am new here, and I am writing this Winbugs code with BRugs.
n=length(bi.bmi)
Lagegp=13
Lgen=2
Lrace=5
Lstra=15
Lpsu=2
#model gen x race
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]]
			   + a12[agegp[i], gen[i]]
			  + gam[stra[i]]+ u[psu[i],stra[i]]		}
# constraints for a1, a2, a3, a12
a1[1]<-0.0
a2[1]<-0.0
a3[1]<-0.0
a12[1,1]<-0.0
#
for(k in 2:Lgen){ a12[1,k]<-0.0}
for(j in 2:13){ a12[j,1]<-0.0}

# priors
a0~ dnorm(0.0, 1.0E-4)
for(i in 2:13){a1[i]~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(i in 2:Lagegp){
	for(j in 2:Lgen){
		a12[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)
}
 
library(BRugs)
writeModel(bi.bmi.model, con='bi.bmi.model2.txt')
bi.bmi.model.data=list('n', 'Lagegp','Lgen', 'Lrace', 'Lstra', 'Lpsu',
				 'stra', 'psu','bi.bmi','agegp', 'gen', 'race')
bi.bmi.model.init=function(){
	list( sigma.u=runif(1),
		a0<-rnorm(1), 
		a1<-c(NA,rep(0, 12)),
		a2<-c(NA, rep(0, Lgen-1)),
		a3<-c(NA, rep(0, Lrace-1)),
		a12<-matrix( c(rep(NA, 13), NA,rep(0, 12)), ncol=2),	 
 		
		gam<-rep(1,Lstra), u<-matrix(rep(0, 30), nrow=2)	)
	}
bi.bmi.model.parameters=c( 'a0', 'a1', 'a2', 'a3',  'a12')
bi.bmi.model.bugs=BRugsFit(modelFile='bi.bmi.model2.txt',
				   data=bi.bmi.model.data,
				   inits=bi.bmi.model.init,
				   numChains=1, 
				   para=bi.bmi.model.parameters,
				   nBurnin=20, nIter=40)

When I run this I get this message.
model is syntactically correct
data loaded
array index is greater than array upper bound for a1
[1] "C:\\DOCUME~1\\Owner\\LOCALS~1\\Temp\\RtmpNvSdyb/inits1.txt"
Initializing chain 1: model must be compiled before initial values loaded
model must be initialized before updating
model must be initialized before DIC an be monitored
Error in samplesSet(parametersToSave) : 
  model must be initialized before monitors used

I checked the main effects alone, and it works fine, so I don't really
understand why it's saying, "array index is greater than array upper bound
for a1."
Anyone who could help me with this would be greatly appreciated.
Thanks.

-- 
View this message in context: http://n4.nabble.com/BRugs-tp2015395p2015395.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list