Questions regarding the branch:
A general comment: in the plots that show both develop and the new branch not recovering the parameters, the R-hats look good, effective sample sizes are high, but the estimates are biased. That's a little worrisome.
I'm going to try to paste in a chart that's my scorecard on the set of runs you've provided. My tally is: 6-16-3-2 (that's flexible_adaptation - develop - draws - losses). This is all hinged on me interpreting the graphs correctly, so if there's something I've missed, please let me know. The last column in the table indicates the branch with problems for that model. Of course, all done by eye.
| Model | Less Biased | Faster | Winner | Something's wrong |
| blocker | flexible_adaptation | develop | ||
| bones | draw | develop | develop | |
| dogs | flexible_adaptation | develop | ||
| dyes | develop | draw | develop | flexible_adaptation |
| epil | draw | develop | develop | |
| equiv | flexible_adaptation | develop | flexible_adaptation | develop |
| inhalers | draw | develop | develop | |
| kidney | flexible_adaptation | flexible_adaptation | flexible_adaptation | develop |
| leuk | draw | draw | draw | both |
| leukfr | draw | develop | develop | |
| lsat | develop | draw | draw | |
| magnesium | flexible_adaptation | develop | flexible_adaptation | develop |
| mice | flexible_adaptation | develop | flexible_adaptation | develop |
| oxford | develop | develop | develop | |
| pump | draw | draw | draw | both |
| rats | flexible_adaptation | develop | flexible_adaptation | develop |
| salm | draw | develop | develop | both |
| salm2 | draw | develop | develop | both |
| seeds | draw | develop | develop | |
| stacks_a_normal | draw | develop | develop | both |
| stacks_b_dexp | draw | develop | develop | |
| stacks_c_t4 | develop | develop | develop | |
| stacks_d_normal_ridge | develop | develop | develop | flexible_adaptation |
| stacks_e_dexp_ridge | draw | develop | develop | both |
| stacks_f_t4_ridge | draw | develop | develop | both |
| surgical | draw | develop | develop | |
| surgical_simple | flexible_adaptation | develop | flexible_adaptation | |
Can we change colors from green/red to something more
color-blind friendly? (I hope you don't think I'm
obsessed with color --- I'm much more obsessed with
typography.)
I'd find stacked histograms easier to
interpret than the overlays. I tmay be my slight red-green
color blindness, but I have a hard time trying to "see"
the histograms themselves without a lot of work.
On 11/27/13, 4:24 AM, Michael Betancourt wrote:
• Could we replot as (mean - expected_mean) / expected_mean to get it on an error ratio scale that's comparable?
The problem is that that becomes less interpretable. The MCSE standard error really provides the relevant scale for
comparing agreement across models.
I think they do two different things.
The MCSE plot is more interpretable for a single model in
telling us whether our MCSE estimates are accurate.
I like the (mean - expected)/expected for simply comparing
fits. It puts all the parameters on the same scale, too.
With MCSE, I can't tell which setup actually got closer
to the true values, only which setup thinks it got closer
based on its MCSE estimate.
Can we compromise on having both?
Questions regarding the branch:
• The claim is "big reduction of bias in the new branch." I take it you're referring to the first plot on all the pages, the (estimate - mean) / MCSE histogram. If so, I don't see a systematic reduction in bias.
The point of this branch is to make adaptation far more robust out of the box,
and given that many of the BUGS models are "easy"
there shouldn't be a systematic reduction. The important features to notice are
a) Rhat gets systematically better (indicating faster convergence)
I think the relevant notion of "fast" here is wall time, not R-hat over
1000 iterations.I'd really really like to see (mean - expected)/expected to see this.
b) In many models outliers vanish (for example, equiv). Note that these
outliers are not evident in the Rhat distributions and so a naive user
would assume the sampler is working fine.
Is the outlier from a bad MCSE estimate or is that estimate really
far away from the true value?Doesn't convergence just mean that it's mixing? And isn't
c) In a few models (kidneys, mice, rats) develop looks like it has converged
by the usual metrics but the chains are way off. The new branch, however,
finds the right mode in each case.
that consistent with having a high MCSE? (Those
weren't rhetorical questions!)
This is the kind of reason why I want to see (mean - expected)/expected,
to see if we're really converging or not.
• Given that it doesn't look like we have dominant behavior, can we independently test the target acceptance rate and new adaptation?
We might as well run two branches at that point. Honestly the effects of
the two branches will be similar.
I don't understand what Michael means here. What do you mean
by run two branches? I think we can run develop with a target
acceptance of 0.8 and flexible adaptation with an acceptance of 0.5.
Running a bunch of acceptance rates would be even better, to match
the empirical performance with the theory for hierarchical models. But
I know this stuff takes forever to run in bulk.
• Is the new branch really that much slower than develop?
But the Stan defaults are what most people are going to use.
Also recall the use of Stan defaults, not tens of thousands of warmup
interations.
Weren't we going to turn down the number of samples by default?
We have a problem with people just turning Stan on with defaults
and a super-complicated model and then waiting for a weekend for
results.
- Bob
--
You received this message because you are subscribed to the Google Groups "stan development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to stan-dev+unsubscribe@googlegroups.com.
> Can we change colors from green/red to something moreOkay -- just choose two whose sum is pretty (red and blue works well).
> color-blind friendly?
I absolutely hate stacked histograms -- they're almost impossible to read.
> I'd find stacked histograms easier to
> interpret than the overlays. I tmay be my slight red-green
> color blindness, but I have a hard time trying to "see"
> the histograms themselves without a lot of work.
I'm happy to tweak the colors but not the histograms.
> I think they do two different things.No.
>
> The MCSE plot is more interpretable for a single model in
> telling us whether our MCSE estimates are accurate.
>
> I like the (mean - expected)/expected for simply comparing
> fits. It puts all the parameters on the same scale, too.
>
> With MCSE, I can't tell which setup actually got closer
> to the true values, only which setup thinks it got closer
> based on its MCSE estimate.
>
> Can we compromise on having both?
Look, the main issue is that (mean - expected) / expected has no statistical
meaning and makes it impossible to compare between parameters (different
variances, etc).
If you want to discriminate between mean - expected being small vs
MCSE being large then we'd just add a histogram for the MCSE.
>> a) Rhat gets systematically better (indicating faster convergence)No, it's R-hat/iteration. Develop has a bad habit of getting stuck
>
> I think the relevant notion of "fast" here is wall time, not R-hat over
> 1000 iterations.
in bad tails from which it takes forever to recover (in terms of
number of iterations). flexible_adaptation is specifically designed
to be more robust to this.
--
You received this message because you are subscribed to the Google Groups "stan development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to stan-dev+u...@googlegroups.com.
The problem with relative and absolute errors is a lack of calibration.
Say we run and have (mean - expected) = 1, or (mean - expected) / abs(expected) = 0.1.
Is that small? Is that big? There's no justification in any case so any claim of
"small" or "big" errors has no motivation. The relative error _is_ scale invariant
(although the mean is not invariant to nonlinear transformations so scale invariance
isn't all that helpful anyways) but there's no calibration. Parenthetically,
decision theoretical arguments aren't super helpful here because they
also don't provide helpful scales; this is why isn't so hard to develop a rigorous
criticism of a model in isolation.
On the other hand, since (mean - expected) / MCSE is N(0, 1) so we do have a calibration
and know what is small and what is large.
Now, what pathologies does MCSE introduce? In the worse case ESS = N and we
get a MCSE that's too large and an amplification of any bias. That's a pretty awesome
worse case for diagnostics.
Regarding the validity of the expected values, we have to be careful. This is one
of the reasons why I keep yelling about not taking performance tests too seriously
right now. We don't know if our baseline is correct, and we shouldn't have too
much faith if the baseline was computing in BUGS/JAGS. So please excuse my
frustration when getting a new feature in requires going through this whole mess.