diff options
author | Ken Kellner <ken@kenkellner.com> | 2021-09-21 12:49:43 -0400 |
---|---|---|
committer | Ken Kellner <ken@kenkellner.com> | 2021-09-21 12:50:08 -0400 |
commit | 48552b6cc6aedc5231ffcd09c3888c98f3208fe2 (patch) | |
tree | c8a32341779cd0b165c5160714f9d5e756c016b4 | |
parent | df187ba07d52531ad61eb791eddeb637c4ab9d47 (diff) |
Don't drop chains with all NA
-rw-r--r-- | DESCRIPTION | 4 | ||||
-rw-r--r-- | R/runmodel.R | 32 |
2 files changed, 18 insertions, 18 deletions
diff --git a/DESCRIPTION b/DESCRIPTION index 74bced6..0140015 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: jagsUI -Version: 1.5.2 -Date: 2021-06-18 +Version: 1.5.2.9000 +Date: 2021-09-21 Title: A Wrapper Around 'rjags' to Streamline 'JAGS' Analyses Authors@R: c( person("Ken", "Kellner", email="contact@kenkellner.com", role=c("cre","aut")), diff --git a/R/runmodel.R b/R/runmodel.R index c4ba853..7cff7e4 100644 --- a/R/runmodel.R +++ b/R/runmodel.R @@ -1,7 +1,7 @@ run.model <- function(model.file=NULL,data=NULL,inits=NULL,parameters.to.save,n.chains=NULL, n.iter,n.burnin,n.thin,n.adapt,verbose=TRUE,model.object=NULL,update=FALSE,parallel=FALSE){ - + if(verbose){pb="text"} else {pb="none"} if(update){ @@ -12,9 +12,9 @@ if(update){ } else {null <- capture.output( m$recompile() )} - + } else { - #Compile model + #Compile model if(verbose | parallel==TRUE){ m <- jags.model(file=model.file,data=data,inits=inits,n.chains=n.chains,n.adapt=0) } else { @@ -26,7 +26,7 @@ if(update){ #Adaptive phase using adapt() total.adapt <- 0 - + if(!is.null(n.adapt)){ if(n.adapt>0){ if(verbose){ @@ -47,16 +47,16 @@ if(!is.null(n.adapt)){ sufficient.adapt <- adapt(object=m,n.iter=1,end.adaptation=TRUE) } else { null <- capture.output( - sufficient.adapt <- adapt(object=m,n.iter=1,end.adaptation=TRUE) - )} + sufficient.adapt <- adapt(object=m,n.iter=1,end.adaptation=TRUE) + )} } total.adapt <- 0 } } else { - + maxloops <- 100 n.adapt.iter <- 100 - + for (i in 1:maxloops){ if(verbose){cat('Adaptive phase.....','\n')} sufficient.adapt <- adapt(object=m,n.iter=n.adapt.iter,progress.bar='none') @@ -72,11 +72,11 @@ if(!is.null(n.adapt)){ break } } - -} + +} if(!sufficient.adapt&total.adapt!=0&verbose){warning("JAGS reports adaptation was incomplete. Consider increasing n.adapt")} -#Burn-in phase using update() +#Burn-in phase using update() if(n.burnin>0){ if(verbose){ cat('\n','Burn-in phase,',n.burnin,'iterations x',n.chains,'chains','\n','\n') @@ -84,21 +84,21 @@ if(n.burnin>0){ cat('\n') } else { null <- capture.output( - update(object=m,n.iter=n.burnin,progress.bar=pb) + update(object=m,n.iter=n.burnin,progress.bar=pb) )} } else if(verbose){cat('No burn-in specified','\n','\n')} -#Sample from posterior using coda.samples() +#Sample from posterior using coda.samples() if(verbose){ cat('Sampling from joint posterior,',(n.iter-n.burnin),'iterations x',n.chains,'chains','\n','\n') samples <- coda.samples(model=m,variable.names=parameters.to.save,n.iter=(n.iter-n.burnin),thin=n.thin, - progress.bar=pb) + na.rm=FALSE, progress.bar=pb) cat('\n') } else { null <- capture.output( samples <- coda.samples(model=m,variable.names=parameters.to.save,n.iter=(n.iter-n.burnin),thin=n.thin, - progress.bar=pb) + na.rm=FALSE, progress.bar=pb) )} return(list(m=m,samples=samples,total.adapt=total.adapt,sufficient.adapt=sufficient.adapt)) -}
\ No newline at end of file +} |