Skip to content

Commit 5d28f13

Browse files
authored
Merge pull request #617 from stan-dev/update-warning-recommendations
Update recommendations for responding to convergence warnings
2 parents ea74bc7 + c720a43 commit 5d28f13

1 file changed

Lines changed: 17 additions & 5 deletions

File tree

vignettes/rstanarm.Rmd

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -334,15 +334,19 @@ the relevant issues.
334334

335335
### Markov chains did not converge
336336

337-
__Recommendation:__ run the chains for more iterations. <br>
337+
__Recommendation:__ run the chains for more iterations (in certain cases, see qualification below). <br>
338338

339339
By default, all __rstanarm__ modeling functions will run four randomly
340340
initialized Markov chains, each for 2000 iterations (including a warmup period
341341
of 1000 iterations that is discarded). All chains must converge to the target
342342
distribution for inferences to be valid. For most models, the default settings
343343
are sufficient, but if you see a warning message about Markov chains not
344344
converging, the first thing to try is increasing the number of iterations. This
345-
can be done by specifying the `iter` argument (e.g. `iter = 3000`).
345+
can be done by specifying the `iter` argument. However, if all parameters have
346+
proper priors (no priors were set to `NULL`), and you used the default values
347+
for iterations (2000) and chains (4), and Rhats (explained below) are greater
348+
than 2, then increasing the number of iterations alone is unlikely to solve to
349+
the problem.
346350

347351
One way to monitor whether a chain has converged to the equilibrium distribution
348352
is to compare its behavior to other randomly initialized chains. This is the
@@ -388,6 +392,7 @@ any(summary(good_rhat)[, "Rhat"] > 1.1)
388392
Details on the computation of Rhat and some of its limitations can be found in
389393
[Stan Modeling Language User's Guide and Reference Manual](https://mc-stan.org/users/documentation/).
390394

395+
391396
### Divergent transitions
392397

393398
__Recommendation:__ increase the target acceptance rate `adapt_delta`. <br>
@@ -418,7 +423,8 @@ the slower sampling is a minor cost.
418423

419424
### Maximum treedepth exceeded
420425

421-
__Recommendation:__ increase the maximum allowed treedepth `max_treedepth`. <br>
426+
__Recommendation:__ increase the maximum allowed treedepth `max_treedepth` unless
427+
all other convergence diagnostics are ok. <br>
422428

423429
Configuring the No-U-Turn-Sampler (the variant of HMC used by Stan) involves
424430
putting a cap on the depth of the trees that it evaluates during each iteration.
@@ -427,11 +433,17 @@ maximum allowed tree depth is reached it indicates that NUTS is terminating
427433
prematurely to avoid excessively long execution time. If __rstanarm__ prints a
428434
warning about transitions exceeding the maximum treedepth you should try
429435
increasing the `max_treedepth` parameter using the optional `control` argument.
430-
For example, to increase `max_treedepth` to 20 (the default used __rstanarm__ is
431-
15) you can provide the argument `control = list(max_treedepth = 20)` to any of
436+
For example, to increase `max_treedepth` to 16 (the default used __rstanarm__ is
437+
15) you can provide the argument `control = list(max_treedepth = 16)` to any of
432438
the __rstanarm__ modeling functions. If you do not see a warning about hitting
433439
the maximum treedepth (which is rare), then you do not need to worry.
434440

441+
With the models __rstanarm__ is capable of fitting, when you get a warning about
442+
max treedepth you will typically also get warnings about other diagnostics. However,
443+
if you see a max treedepth warning but all other convergence diagnostics
444+
are fine, you can typically ignore the warning. In that case the warning
445+
likely indicates efficiency issues but not that the results are invalid to analyze.
446+
435447
# Conclusion
436448

437449
In this vignette, we have gone through the four steps of a Bayesian analysis.

0 commit comments

Comments
 (0)