alashworth / test-issue-import

0 stars 0 forks source link

Confusing warning for low-sample-size runs #116

Open alashworth opened 5 years ago

alashworth commented 5 years ago

Issue by davidmanheim Friday Sep 09, 2016 at 15:34 GMT Originally opened as https://github.com/stan-dev/stan/issues/2064


Summary:

When running Stan programs with low sample sizes (under 300 samples,) Stan returns a (confusing/spurious?) warning regarding the warmup.

Description:

When running an analysis with a sample size under 300, the following warning is generated;

WARNING: The initial buffer, adaptation window, and terminal buffer overflow the total number of warmup iterations. Defaulting to a 15%/75%/10% partition, {List of used valuesfor each}

Reproducible Steps:

In R, run;

library(rstan)
stanmodelcode <- "
data {
int<lower=0> N;
real y[N];
} 

parameters {
real mu;
} 

model {
target += normal_lpdf(mu | 0, 10);
target += normal_lpdf(y  | mu, 1);
} 
"

y = rnorm(20) 
dat = list(N = 20, y = y); 
fit = stan(model_code = stanmodelcode, model_name = "example", 
            data = dat, iter = 290, chains = 3, sample_file = 'norm.csv',
            verbose = TRUE)

Current Output:

SAMPLING FOR MODEL 'example' NOW (CHAIN 1).
WARNING: The initial buffer, adaptation window, and terminal buffer
         overflow the total number of warmup iterations.
         Defaulting to a 15%/75%/10% partition,
           init_buffer = 21
           adapt_window = 110
           term_buffer = 14

Chain 1, Iteration:   1 / 290 [  0%]  (Warmup)
{etc. - Runs fine}

Expected Output:

No warning, or perhaps;

WARNING: The number of warmup iterations is below the recommended amount.

Additional Information

This error message occurs even when you specify the number of the buffers and window to rstan;

fit <- stan(model_code = stanmodelcode, model_name = "example", 
            data = dat, iter = 200, chains = 1, 
            control=list(c(adapt_init_buffer=10, adapt_term_buffer=10, adapt_window=10)),verbose =TRUE) 

Current Version:

v2.12.0

alashworth commented 5 years ago

Comment by bob-carpenter Friday Sep 09, 2016 at 17:20 GMT


I agree that would be a better warning message.

As an aside, we try to separate usage of "sample" and "draw", with a single sample being made up of multiple draws.

alashworth commented 5 years ago

Comment by bob-carpenter Thursday Mar 30, 2017 at 20:32 GMT


Add another message that "warmup is less than the recommended minimum 150 iterations" and then continue to dump a more detailed message that indicates it's just detail.