I find it kind of hard to grasp the output of the p.adjusted() function in R, when using the bonferroni method. I understand that the Bonferroni correction actually lowers the p-value so that researchers can avoid making a Type I error when doing multiple tests.

As far as I have understood, the alpha rate is then divided by the number of tests (0.05/2 = 0.025)

Why then is the output of this line 0.06 and not 0.015?

p.adjust(0.03, method = 'bonferroni', n = 2)

Your help and answers are very, very much appreciated.

  • 1
    $\begingroup$ The Bonferroni correction multiplies p-values by the number of comparisons: 2 x 0.03 = 0.06. $\endgroup$ – neilfws Oct 19 '20 at 21:28

The question is why, not what does the manual say?

The answer is that alpha and the P value are different things, and they work in opposite ways.

When you get a P value, you are asking "at what alpha value would I reject the null?". In other words, we are going to view our observed |t| as the critical value of the test, and the P value is the alpha that has that critical value.

So, given a particular adjusted P value, and given that it was adjusted based on the Bonferroni method, you would take that adjusted P as the borderline alpha level for the Bonferroni test; accordingly, you have to divide that adjusted P by the number of tests in order to obtain the corresponding borderline critical value from the t distribution.

Conversely, given the t ratio, then to get a P value, we view that t value as the borderline critical value. The unadjusted P value is the alpha for which that is at the borderline. To get the adjusted P value, we have to multiply the unadjusted P value by the number of tests so that it comes out right hen you later divide it, as described in the preceding paragraph.

  • $\begingroup$ Good answer, and just noting that (1) the question was migrated from StackOverflow where the focus is the R language and (2) it was edited several times before migration which changed the question focus. $\endgroup$ – neilfws Oct 19 '20 at 23:11

From the "Details" section of the p.adjust help page (?p.adjust):

Details The adjustment methods include the Bonferroni correction ("bonferroni") in which the p-values are multiplied by the number of comparisons.

So the output is 0.06 because 2 x 0.03 = 0.06: number of comparisons is multiplied, not divided.


If the probability of getting a particular result on one test is $0.03$, then when you have two tests, you have two chances to get that result, so it's $0.03*2$ (technically, it's $0.03*2-0.03^2$, but that rounds to $0.06$).

We decide whether to reject the null based on whether the p-value is greater than $\alpha$. So when we adjust the test, we can either double the p-value, or halve the $\alpha$. They are equivalent: $2p < \alpha$ iff $p < \alpha/2$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy