Multiple tests correction for Bayesian models #249
Replies: 6 comments 2 replies
-
This is a very interesting question! I think we need to distinguish between:
(In practice these are overlapping categories, and in the frequentist framework the solution to all of them is similar). Bayes factorsBFs are the evidence ratio between two models - so in and of themselves they do not require any multiple comparisons correction: they are "just" the evidence, nothing more. The conclusions drawn from BFs, however, are prone to such problems (but see next section). The method of dealing with this problem is also by adjusting the priors, but here the adjusted priors are the prior odds. By adjusting the prior odds, the conclusions (usually equated with the posterior odds) are less affected by BF itself, as they are weighted by both: Posteriorodds = BF * Priorodds Tim de Jong's work covers several methods of doing such corrections on the prior odds in cases of dependent post-hoc tests (see above). In practice, I haven't seen anyone report Posteriorodds in a paper (maybe once), so it seems like there is little call for Priorodds/Posteriorodds adjustments. Note that some of Tim's methods are available by default in JASP: Do we care?There are those who say that this is all hogwash - caring about error rates is soooo frequentist 👻! Also, even if a mistake was made, since in the Bayesian framework posteriors can become the new priors and be themselves updated, such mistakes will be corrected once more data is introduced (this is true for any Bayesian index really), and applying any corrections only limits our ability to learn (this is equal in a sense to a frequentist saying that p-value correction limit the rate of true discovery). I tend to agree with this view, and think that post-hoc or multiple comparisons (see above) are not an issue in Bayesian inference.
This seems rather odd that priors change to account for your analysis plan, no? Does your prior knowledge about the parameter space change because you're going to test two things instead of one?
For Bayesian, Are there any works on multiple comparisons for, say, ROPE? |
Beta Was this translation helpful? Give feedback.
-
Very interesting. Indeed the first dissociations between posthoc tests, multiple tests and conditional tests is important.
While I surely agree with this on a theoretical level, in practice people might still want to look into such adjustment procedures to control for false discoveries. Especially in genetics or neuroimaging (fMRI), where you have like tons of variables (voxels, genes, ...). Let's take the famous fish fMRI poster, showing significant activations in a cluster of voxels in a dead fish, well the same issue would have probably arisen with Bayesian indices, right? On a bright side of things, aside from adjusting a posteriori for false discoveries (such as correcting p-values), which wouldn't really make sense with Bayesian indices (aside maybe, from increasing whatever thresholds one uses to consider and discuss the results as significant), one can also make a priori adjustments via priors
I don't know of any of such work, but I don't really see how it would make sense 😕 But again, I've seen many people saying "multiple testing is not a problem with Bayes". But (while making theoretical sense), it just seems a bit too magical. It's like "although we have numbers that are related to the p-value, we don't need to adjust them because of reasons". So since we support Bayesian multiple comparisons (via emmeans in estimate) and Bayesian correlation matrices (in correlation), we should at least think about this and potentially provide clear and informative information to users that will have this interrogation :) |
Beta Was this translation helpful? Give feedback.
-
I think the basic difference is that in freq stats, desicions are based on a criterion that reflects the error rate! If the likelihood of the data under H0 is smaller than your set error-rate (alpha), then you consider the null rejected. Some more reading:
But... What about pd? pd.adjust <- function(pd, method = p.adjust.methods, n = length(pd), one_sided = FALSE) {
if (one_sided) {
p <- 1 - pd
} else {
p <- 2 * (1 - pd)
}
p_ <- p.adjust(p, method = method, n = n)
if (one_sided) {
pd_ <- 1 - p_
} else {
pd_ <- 1 - (p_ / 2)
}
pd_
}
pd.adjust(c(0.87,0.97), method = "fdr")
#> [1] 0.87 0.94 (What about p-sig or pMAP? Who knows.....) |
Beta Was this translation helpful? Give feedback.
-
http://eointravers.com/post/hypothesis/#bayesian-multiple-comparisons |
Beta Was this translation helpful? Give feedback.
-
I have been computing contrasts of Bayesian models looking at pd and pMAP and wanted to see if a correction paradigm was implemented in the package that I could use when calling the describe_posterior function or whether I should use what you wrote above on a list of values afterwards? |
Beta Was this translation helpful? Give feedback.
-
Thank you for the documents. Since my data has a hierarchical structure and I'm already fitting a mixed model with a random effect, does that mean that I'm covered? |
Beta Was this translation helpful? Give feedback.
-
Working on correlation made this "issue" apparent, I wanted to brainstorm.
In the frequentist framework, standard practice is to adjust the significance index, the p values, for multiple tests/comparisons. This is particularly common when computing correlation matrices or testing contrasts.
As more and more people switch to the Bayesian framework, this issue will raise up again, especially since some of the Bayesian indices (e.g., the pd) is in the end practically close to the p-value. This begs the question, if we must adjust the p-value, why not te pd?
Bayesian can respond that there no need for posthoc corrections, because we have priors. Hence, once can eventually just specify more precise priors. For correlations in correlation, as it relies on
BayesFactor::correlationBF
, this can be done via therscale
argument (see details).But what in the case of contrasts analysis? To my knowledge, BF, or the other indices, that we compute based on
emmeans
, are based on the model's priors. Hence, any "adjustement" should be done prior to model fitting. Or is it a thing that we can do in emmeans (and thus is an issue that belongs toestimate
)? If not, we could think about an implementation for #238. For instance, is one is adding some factor with lotta levels as predictors with the idea of doing full pairwise contrasts analysis, he might want to specify a more precise prior for it. Could we suggest an appropriate scale with suchinformative_priors(model, multiple_correction = TRUE)
? Or does this whole thing make no sense at all? What are your thoughts?Beta Was this translation helpful? Give feedback.
All reactions