"Pr = 0.000" - how to get the EXACT p-value?

"Pr = 0.000" - how to get the EXACT p-value?

by Mark Pletcher -
Number of replies: 2

When the p-value is really small, Stata just gives you "0.000" or sometimes "0.0000", depending on the setting. The p-value is never actually ZERO, but in these cases it is so small that when you round to 3 or 4 digits, the rounded value appears to be zero.

In these cases, you should report that the p-value is LESS THAN some critical value. For "0.000", the most precise thing to say is "p<0.0005" (because, for example, p=.0006 would round to "0.001", but p=.0004 would round down to "0.000"). It is also correct and often reasonable to say p<.01 or p<.001, etc, but these give a bit less information. For "0.0000", you could say "p<.00005".

If you want to get the EXACT value, you can often use the test statistic that Stata provides. For example, you might get a chi-squared value (along with degrees of freedom), and you can have Stata convert that to an exact p-value for you. For example, using the Coronary Calcium dataset in lab 1, try:

tab smoke htn, chi2

Stata will give you "Pearson chi2(1) = 4.916" and "Pr = 0.026".

Now try this Stata command:

display 1 - chi2(1, 4.916)

You should get the 0.026 p-value. Now try:

tab male htn, chi2

The p-value here is "0.000", but with the display command:
display 1- chi2(1, 24.0355)
you'll get "p=9.458e-07" (it's REALLY small!).

Similar functions can probably be found for ttests, F tests (Anova), etc.

I've always advised to round all of these to "<0.001".  This is because many of the techniques to derive p values are approximate and stating the exact numerical value of very small p values gives a false sense of accuracy.  

This is unless one is in the realm of multiple comparisons and needs to show the exact nature of the very small value.  In these instances, one should be sure that one is using exact (rather than approximate) statistical techniques. 

In reply to Mark Pletcher

Re: "Pr = 0.000" - how to get the EXACT p-value?

by Carla Francisco -

I wanted to get the exact p value, so I tried your examples, however when I typed in, "tab male htn, chi2," or "tab smoke htn, chi2" as per your example, stata gave me an error message saying "option htn not allowed." do you know why? thanks!

In reply to Carla Francisco

Re: "Pr = 0.000" - how to get the EXACT p-value?

by Brett Ley -

Make sure you comma is after htn. I think you put it before, placing htn as an option and not a variable. If you write the command exactly as your did in your message. It should work:

tab male htn, chi2

tab smoke htn, chi2