How to interpret a p-value of 0


Haky Im


December 1, 2020

A p-value of zero should be interpreted as an extremely small positive value.

S-PrediXcan or PrediXcan will provide the zscore as well as the p-value. You can calculate the p-value corresponding to the Zscore using the formula below. For example a Zscore of 30 will give you a (natural) log p-value of -453.6280968

Zscore = 30
pnorm(-abs(Zscore) , log.p = TRUE) + log(2)  
[1] -453.6281

MultiXcan doesn’t output the test statistics used for the p-value calculation. But you can get a sense of how extreme the p-values can be by looking at the largest Z-scores in absolute value in the z_min and z_max columns. The (natural) log of the p-value corresponding to your results is shown below.

tempo = read_tsv("~/Downloads/multixcan_output.txt")
pnorm(- max(abs(c(tempo$z_max,tempo$z_min ) ), na.rm = TRUE), log.p = TRUE) + log(2)