Tutorials › Adaptive Clinical Trial Design › Zero and Rounded P-Values in Fisher Statistics

The Combination Test Principle · Tutorial 208 of 799

Zero and Rounded P-Values in Fisher Statistics

Learn to distinguish a genuine p-value from a displayed or underflowed zero, compute Fisher’s statistic stably, and bound the impact of rounded stagewise values.

Advanced 10 min read

What You'll Learn

  • State when Fisher’s chi-square reference distribution applies to stagewise p-values.
  • Explain why a displayed zero is not a valid numerical input to the logarithm.
  • Compute Fisher’s statistic using log p-values without multiplying tiny values.
  • Bound a combined result when stagewise p-values are reported only as inequalities.
  • Quantify how rounding uncertainty in stagewise values changes the combined p-value.
  • Diagnose precision failures and distinguish them from statistical calibration problems.

Why Numerical Precision Matters in Fisher Combination

Fisher’s combination statistic gives small stagewise p-values substantial influence because each enters through a logarithm. That feature is useful for combining evidence, but it creates a practical hazard: if software rounds a small p-value to zero, the logarithm is undefined, and replacing the value with zero can make the combined statistic appear infinite. Rounding can also alter the reported combined result even when no value is literally zero.

The issue is numerical, not a new interpretation of evidence. A value displayed as “0” may represent a very small positive number, a p-value known only to be below a reporting threshold, or an actual computational failure. These cases require different responses. In particular, the display alone does not tell us the p-value needed for a Fisher calculation.

Definition: For \(k\) independent stagewise p-values \(p_1,\ldots,p_k\), Fisher’s combination statistic is \(T=-2\sum_{i=1}^{k}\ln(p_i)\), where every input must be a numerical value in \((0,1]\). If, under \(H_0\), the stagewise p-values are independent and each has a continuous Uniform\((0,1)\) distribution, then \(T\sim\chi^2_{2k}\). The combined p-value is the upper-tail probability \(P(\chi^2_{2k}\ge T)\).

The exact chi-square reference distribution requires the stated independence and continuous uniform null distributions. If the stagewise p-values are only conservative rather than uniform, or if their joint null distribution is not independent, the usual \(\chi^2_{2k}\) calibration need not be exact. A precision fix cannot repair a failure of those statistical assumptions. The concern here is how to preserve numerical information when the intended Fisher calculation is appropriate.

Compute on the Log Scale

The formula for \(T\) is already expressed in terms of log p-values. Therefore, there is no need to multiply all the p-values first. This matters because a product of small positive numbers can underflow to machine zero even when each value is representable. If stage \(i\) supplies \(\ell_i=\ln(p_i)\), calculate \(T=-2\sum_i \ell_i\) directly.

Key result: If the inputs are supplied as log p-values \(\ell_i=\ln(p_i)\), compute \(T=-2\sum_i\ell_i\). Do not exponentiate the \(\ell_i\) values, multiply the resulting p-values, and then take a logarithm. If only a p-value is available, calculate its logarithm using a numerically stable tail-probability routine whenever possible.

A short derivation explains both the formula and why logging is the natural computation. Under the null assumptions above, each \(p_i\) is Uniform\((0,1)\). For \(x\ge0\),

$$ P(-2\ln(p_i)\le x) =P(p_i\ge e^{-x/2}) =1-e^{-x/2}. $$

This is the cumulative distribution function of a chi-square random variable with 2 degrees of freedom. Because the stagewise p-values are independent, the transformed variables \(-2\ln(p_i)\) are independent. Their sum therefore has a chi-square distribution with \(2k\) degrees of freedom, giving the reference distribution for \(T\). The derivation also shows why a genuine input of zero is not allowed: \(\ln(0)\) is not finite.

Worked Example: Combining Ordinary Positive P-Values

Suppose two independent stages produce hypothetical one-sided p-values \(p_1=0.020\) and \(p_2=0.300\). Assume each is continuous Uniform\((0,1)\) under \(H_0\), and assume independence under \(H_0\). Thus the Fisher reference distribution has \(2k=4\) degrees of freedom.

The product is \(p_1p_2=0.020(0.300)=0.00600\), so

$$ T=-2\ln(0.020)-2\ln(0.300) =-2\ln(0.00600) =10.232. $$

For four degrees of freedom, the chi-square upper tail at \(t\) is \(e^{-t/2}(1+t/2)\). Here \(e^{-T/2}=0.00600\), so

$$ p_{\mathrm{comb}} =e^{-10.232/2}(1+10.232/2) =0.00600(1+5.116) \approx0.03670. $$

The combined p-value is about 0.0367. In this calculation both inputs are positive, and the independence and uniform-null assumptions support the stated chi-square calibration. For these two stages, using the product is harmless; for much smaller inputs, summing log p-values is generally safer.

Three Different Meanings of “Zero”

A displayed zero does not identify the underlying situation. First, a p-value may be underflowed: the mathematical value is positive, but a calculation or data type cannot represent it and stores zero. Second, a p-value may be rounded for display, such as “0.000” or “<0.001,” while the unrounded value remains available elsewhere. Third, a method may genuinely return a numerical value of zero. For a valid p-value under a continuous null distribution, zero has probability zero; in finite computations it is most often a reporting or numerical artifact, not a literal measurement of no chance.

The remedy depends on which case occurred. If the display is rounded but the full-precision value is available, use that value. If a computation underflowed, retrieve or recompute the logarithm of the tail probability rather than treating the stored zero as exact. If only an inequality such as \(p_i<c\) is available, retain that inequality and calculate a bound. If the source and meaning of the zero cannot be established, the Fisher result is not recoverable from that zero alone.

Worked Example: An Underflowed Stagewise P-Value

Consider two hypothetical independent stagewise p-values under the same null assumptions as above: \(p_1=10^{-400}\) and \(p_2=0.200\). A standard floating-point calculation may store \(p_1\) as zero, even though the mathematical value is positive. Suppose a reliable computation retains \(\ln(p_1)=-400\ln(10)\). Then

$$ \ln(p_1)=-400(2.302585)=-921.034, \qquad \ln(p_2)=\ln(0.200)=-1.609438. $$

Using the log values directly gives

$$ T=-2[-921.034-1.609438] =1845.287. $$

The equivalent product, if it could be represented, is \(p_1p_2=2\times10^{-401}\). For four degrees of freedom, the upper-tail probability is

$$ p_{\mathrm{comb}} =e^{-T/2}(1+T/2) =(2\times10^{-401})(1+922.644) \approx1.847\times10^{-398}. $$

This is a finite combined p-value, not zero. The calculation is valid only because the hypothetical log p-value is known and the stagewise independence and uniform-null assumptions hold. If the only available input were the stored value \(p_1=0\), the finite result could not be reconstructed from that value alone.

What Rounded Inputs Allow You to Conclude

If a p-value is reported only as \(p_1<c\), Fisher’s statistic can still be bounded when the other inputs are known. Since \(-\ln(p)\) decreases as \(p\) increases, \(p_1<c\) implies \(-2\ln(p_1)>-2\ln(c)\). Thus the resulting statistic exceeds the value obtained by substituting \(c\). Because the chi-square upper tail decreases as the statistic increases, substituting \(c\) gives an upper bound on the combined p-value, not the exact result.

Worked Example: Using a Reported Upper Bound

Suppose a hypothetical report gives \(p_1<0.001\), while a second independent stage reports \(p_2=0.200\). Assume the same continuous uniform-null and independence conditions. The first p-value is not known exactly, but the product satisfies \(p_1p_2<0.001(0.200)=0.000200\). Consequently,

$$ T=-2\ln(p_1p_2)>-2\ln(0.000200)=17.034. $$

For four degrees of freedom, the combined p-value is therefore less than the upper tail at 17.034:

$$ p_{\mathrm{comb}} <e^{-17.034/2}(1+17.034/2) =0.000200(1+8.517) \approx0.001903. $$

The justified conclusion is \(p_{\mathrm{comb}}<0.001903\), subject to the assumed calibration conditions. Reporting \(0.001903\) as the exact combined p-value would overstate what the rounded input supports.

Ordinary rounding can also be handled by propagating an interval. If a value is displayed to three decimal places as 0.047 using rounding to nearest, its unrounded value lies approximately between 0.0465 and 0.0475. Endpoint details depend on the rounding convention, so the interval should match the reporting system. Since Fisher’s statistic decreases as any input p-value increases, the largest allowed inputs give the smallest statistic; the smallest allowed inputs give the largest statistic.

Worked Example: Propagating Rounding Intervals

Suppose two hypothetical independent stagewise p-values are reported to the nearest 0.001 as 0.047 and 0.031. Under the stated rounding convention, take \(0.0465\le p_1\le0.0475\) and \(0.0305\le p_2\le0.0315\). Assume the same conditions for the four-degree-of-freedom Fisher reference distribution. The product is bounded by

$$ 0.0465(0.0305)=0.00141825 \le p_1p_2 \le 0.0475(0.0315)=0.00149625. $$

The product endpoints give the reversed ordering for \(T\):

$$ -2\ln(0.00149625)\approx13.010 \le T \le -2\ln(0.00141825)\approx13.117. $$

For four degrees of freedom, writing \(q=p_1p_2\), the combined upper tail is \(q(1-\ln q)\). At the product endpoints this is approximately \(0.00149625(1-\ln 0.00149625)=0.01123\) and \(0.00141825(1-\ln 0.00141825)=0.01072\). Therefore the combined p-value lies approximately between 0.01072 and 0.01123. Treating the displayed values as exact would give one number, but the input precision supports an interval.

Diagnostics, Alternatives, and Limits

When a software result is zero or unexpectedly extreme, diagnose the calculation before interpreting it. Check whether the p-value was stored as zero or merely formatted as zero; inspect the unrounded output and its data type; determine whether the probability calculation returned a tail probability or only a log tail probability; and verify that the number of stages and reference degrees of freedom are correct. If logs are available, compare \(-2\sum_i\ln(p_i)\) with the reported statistic. A mismatch can reveal rounding, underflow, or a transcription error.

The most direct alternative to multiplying p-values is log-domain computation, which is still Fisher’s method and avoids unnecessary loss of precision. If an input is available only as an upper bound, report a bound on the combined p-value; if it is rounded, propagate its interval. If no reliable value or bound can be recovered, report that the combined calculation is numerically indeterminate rather than silently substituting an arbitrary small constant.

A common alternative is to replace a zero with a tiny positive number, such as machine epsilon. That substitution changes the statistic by an amount determined by the arbitrary replacement: changing \(p\) to \(p^\ast\) changes its Fisher contribution to \(-2\ln(p^\ast)\). It is not a general correction and should not be used unless a principled, prespecified truncation rule defines the analysis. Another combination method may also transform small p-values, but it does not make lost input information reappear; for example, a zero can also cause an infinite normal quantile. Changing the combination method is not a remedy for numerical underflow.

Finally, numerical stability and statistical validity are separate. Logarithms can preserve tiny probabilities accurately, but they cannot establish that stagewise p-values are independent or uniformly distributed under \(H_0\). Nor can an exact combined p-value be reported when the input p-values are known only to limited precision. State the assumptions, preserve the available precision, and make the conclusion no more specific than the inputs allow.

Common mistake: “The software printed 0.000, so I will enter zero into Fisher’s formula.” The correction is to obtain the unrounded p-value or log p-value, or use the reported threshold to calculate a bound. Zero is not a usable input because \(\ln(0)\) is undefined; replacing it with an arbitrary small value invents precision the report does not contain.

Check Your Understanding

Answer each question, then compare with the solutions below.

  1. Two independent, continuous Uniform\((0,1)\) null p-values are 0.10 and 0.50. What is \(T\), and what are the reference degrees of freedom?
  2. A stagewise p-value is reported as \(p_1<0.01\), and an independent second-stage p-value is 0.20. What lower bound does this give for \(T\)?
  3. Why is replacing a computed zero with \(10^{-16}\) not a generally valid fix?
  4. A calculation stores \(p_1\) as zero but retains \(\ln(p_1)=-100\); the other stage has \(p_2=0.50\). What finite Fisher statistic follows?

Solutions. (1) \(T=-2\ln(0.10\times0.50)=-2\ln(0.050)=5.991\), with \(2k=4\) degrees of freedom. The null assumptions in the question justify that reference distribution. (2) Since \(p_1p_2<0.01(0.20)=0.002\), \(T>-2\ln(0.002)=12.429\). The inequality is strict because the reported stagewise value is strictly below 0.01. (3) The replacement imposes an arbitrary value and therefore an arbitrary contribution \(-2\ln(10^{-16})\); it does not recover the unknown p-value. (4) Using the retained log value, \(T=-2[-100+\ln(0.50)]=-2[-100.6931]=201.386\). This calculation uses the known log input rather than the underflowed stored zero.

Clinical Biostats