stan-dev / rstanarm

rstanarm R package for Bayesian applied regression modeling
https://mc-stan.org/rstanarm
GNU General Public License v3.0
385 stars 132 forks source link

Argument `save_warmup` is ignored? #575

Open anddis opened 1 year ago

anddis commented 1 year ago

Description:

rstanarm's modeling functions won't save warm-up draws even if save_warmup = TRUE is specified.

(refresh, otoh is correctly passed to stan(), for example).

Reproducible example:

> library(rstanarm)
> sglm <- stan_glm(vs ~ wt, data = mtcars, family = "binomial", chains = 1, 
+                  seed = 1234, iter = 2000, refresh = 400,  save_warmup = TRUE)

SAMPLING FOR MODEL 'bernoulli' NOW (CHAIN 1).
Chain 1: 
Chain 1: Gradient evaluation took 1.7e-05 seconds
Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 0.17 seconds.
Chain 1: Adjust your expectations accordingly!
Chain 1: 
Chain 1: 
Chain 1: Iteration:    1 / 2000 [  0%]  (Warmup)
Chain 1: Iteration:  400 / 2000 [ 20%]  (Warmup)
Chain 1: Iteration:  800 / 2000 [ 40%]  (Warmup)
Chain 1: Iteration: 1001 / 2000 [ 50%]  (Sampling)
Chain 1: Iteration: 1400 / 2000 [ 70%]  (Sampling)
Chain 1: Iteration: 1800 / 2000 [ 90%]  (Sampling)
Chain 1: Iteration: 2000 / 2000 [100%]  (Sampling)
Chain 1: 
Chain 1:  Elapsed Time: 0.041092 seconds (Warm-up)
Chain 1:                0.037098 seconds (Sampling)
Chain 1:                0.07819 seconds (Total)
Chain 1: 
> sglm$stanfit@stan_args[[1]]$save_warmup
[1] FALSE
> sglm$stanfit@stan_args[[1]]$refresh
[1] 400

Code only:

library(rstanarm)
sglm <- stan_glm(vs ~ wt, data = mtcars, family = "binomial", chains = 1, 
                 seed = 1234, iter = 2000, refresh = 400,  save_warmup = TRUE)
sglm$stanfit@stan_args[[1]]$save_warmup
sglm$stanfit@stan_args[[1]]$refresh

Package version:

> packageVersion("rstanarm")
[1] ‘2.21.3’
> packageVersion("rstan")
[1] ‘2.21.7’

R Version:

4.2.0

Operating System:

OS X 10.14.6