aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Kellner <ken@kenkellner.com>2021-09-21 12:49:43 -0400
committerKen Kellner <ken@kenkellner.com>2021-09-21 12:50:08 -0400
commit48552b6cc6aedc5231ffcd09c3888c98f3208fe2 (patch)
treec8a32341779cd0b165c5160714f9d5e756c016b4
parentdf187ba07d52531ad61eb791eddeb637c4ab9d47 (diff)
Don't drop chains with all NA
-rw-r--r--DESCRIPTION4
-rw-r--r--R/runmodel.R32
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
+}