Tutorials › Statistical Genetics › Null Calibration Checks for Association Tests

Covariates, Missingness, and Robust Inference · Tutorial 337 of 989

Null Calibration Checks for Association Tests

Use null simulations and resampling to assess association-test calibration, interpret genome-wide inflation diagnostics cautiously, and identify when the design must be preserved.

Intermediate 10 min read

What You'll Learn

  • Define null calibration and state when association-test p-values should be uniform.
  • Construct design-preserving null simulations that retain relevant covariates and dependence.
  • Estimate empirical p-values from simulated or resampled test statistics.
  • Interpret chi-square quantile plots and the genomic inflation factor.
  • Distinguish calibration failure from true associations and population-related inflation.
  • Recognize when naive permutation is invalid and how to improve the null check.

Why Check Null Calibration?

An association test is calibrated when, under its null hypothesis and stated assumptions, its test statistic follows the reference distribution used to calculate its p-value. If that distribution is wrong, the reported p-values can be too small or too large even when there is no genetic effect. In a genome-wide analysis, even a small systematic excess of small p-values can produce many apparently compelling findings.

A calibration check asks whether a particular analysis procedure behaves as intended under a genetic null that reflects the study design. It is not the same as deciding whether a particular variant is associated, and a genome-wide excess of small p-values does not by itself reveal its cause. True associations, population structure, relatedness, technical artifacts, and model misspecification can all affect the observed distribution.

Definition: A test is null-calibrated when, for data generated under its null hypothesis and the assumptions of the test, the rejection probability at a nominal significance level \(\alpha\) is \(\alpha\) (or no greater than \(\alpha\) for a conservative test). For a continuous, correctly specified null p-value, this is equivalent to a uniform distribution on 0 to 1.

What a Well-Calibrated Null Looks Like

For a single continuously distributed test statistic with a correct null reference distribution, its p-value is uniform under the null. Thus, among \(m\) tests that are all truly null, the expected number with p-values at most \(a\) is \(ma\). For example, among 10,000 null tests, about 500 are expected to have p-values at most 0.05. This is an expectation, not a promise that every set of 10,000 tests will contain exactly 500 such p-values. Dependence between genetic variants affects the variability of the count, although it does not change the marginal null expectation when each test is calibrated.

The uniformity result follows directly from the definition of a continuous p-value. If \(T\) has null cumulative distribution function \(F_0\), and a one-sided p-value is \(P(T \geq t)\), then \(P(T \geq T_{\mathrm{obs}})=1-F_0(T_{\mathrm{obs}})\). Since \(F_0(T)\) is uniform on 0 to 1 for a continuous null distribution, its complement is also uniform. The same principle applies to a two-sided p-value when it is calculated from the correct null distribution.

In common association tests, a statistic such as a score or Wald statistic may be compared with a chi-square distribution. For a one-degree-of-freedom test, the expected median of the null chi-square statistics is approximately 0.4549. This provides a reference for a quantile-quantile (QQ) plot or a simple inflation summary. A QQ plot compares observed test-statistic quantiles with the corresponding null quantiles. Systematic upward deviation indicates that the observed statistics are larger than the reference predicts; it does not identify why.

Worked Example: Checking an Empirical Null Tail

Suppose a hypothetical study tests one variant using a test statistic \(T\), with larger values more inconsistent with the null. The observed statistic is \(T_{\mathrm{obs}}=8.0\). Researchers generate 999 independent data sets under a fitted null model, preserving the study covariates and relatedness structure, and rerun the association test. In 11 of those simulations, the statistic is at least 8.0. Estimate the simulation-based p-value.

A finite-simulation estimate that avoids a zero p-value is \(p_{\mathrm{emp}}=(b+1)/(B+1)\), where \(b\) is the number of simulated statistics at least as extreme as observed and \(B\) is the number of simulations. Here \(b=11\) and \(B=999\), so

$$ p_{\mathrm{emp}}=\frac{11+1}{999+1}=\frac{12}{1000}=0.012. $$

The estimated null-tail probability is 0.012, or 1.2%. This is an estimate based on the specified null-generating model, not proof that the null hypothesis is true. Because only 999 simulations were used, the estimate also has Monte Carlo uncertainty; a larger simulation run would give a more precise estimate, especially for very small tail probabilities.

Design-Preserving Null Simulations and Resampling

A useful null check preserves the features that affect the distribution of the test statistic, while generating outcomes under no genetic effect for the tested association. Depending on the analysis, those features can include covariates, ancestry structure, relatedness, case-control sampling, missingness, and the phenotype model. The association procedure is then rerun on each generated or resampled data set. If the analysis includes data-dependent steps, those steps should generally be repeated in each replicate when their selection uncertainty affects the test.

The simulation method must match the null hypothesis and design. For example, simulating a binary phenotype independently for each participant from fitted null-model probabilities is appropriate only if the model's conditional independence assumptions are adequate. If outcomes are correlated within families, independent Bernoulli draws do not preserve that dependence; the null-generation procedure must account for it. Likewise, randomly shuffling phenotypes across all participants is not generally valid when phenotype distributions differ by covariates or ancestry.

1
Specify the null and the reference procedure.
State which genetic effect is set to zero, what test statistic is used, and which assumptions are needed for its analytic reference distribution.
2
Choose a design-compatible null generator.
Retain observed genotypes and relevant design features, and generate or resample phenotypes under the null while respecting covariates and dependence.
3
Repeat the full relevant analysis.
Apply the same association test and any analysis steps that contribute to the reported statistic to every replicate.
4
Compare the simulated and intended distributions.
Check tail rejection rates, empirical p-values, and test-statistic quantiles. Investigate departures rather than treating a single summary as a diagnosis.

Permutation is one possible resampling approach, but its validity depends on exchangeability: under the null, the observations being permuted must have the same joint distribution after the permitted rearrangements. If exchangeability holds only within strata, permutation should be restricted to those strata. Residual-permutation methods can sometimes accommodate covariates, but their validity also depends on the model and residual structure; they are not a universal fix for confounding or dependence.

Worked Example: Why Global Phenotype Permutation Can Mislead

Consider a hypothetical study of 600 unrelated participants in two ancestry groups. A genetic variant is more common in group A than group B, and the quantitative phenotype has a different mean between the groups. Within each group, suppose the variant has no effect. The intended test adjusts for ancestry group.

A global permutation shuffles phenotype values among all 600 participants. This breaks the observed relationship between phenotype and ancestry. But that relationship is part of the design and is also related to genotype through ancestry. The permuted data therefore do not reproduce the null distribution for the ancestry-adjusted association analysis. The permutation may give a misleading calibration comparison.

A design-preserving approach could permute phenotypes within ancestry groups, if participants are exchangeable within each group and there are no other dependence features to preserve. Alternatively, a suitable null model can generate phenotypes conditional on ancestry and other covariates. In either case, the ancestry-adjusted test is rerun for each replicate. The key check is not whether a particular permutation scheme is convenient, but whether its null replicates preserve the features required by the intended test.

Genome-Wide Inflation: A Diagnostic, Not a Diagnosis

A common summary for one-degree-of-freedom chi-square association statistics is the genomic inflation factor, often denoted \(\lambda\). It is the median observed chi-square statistic divided by the median expected under the null:

$$ \lambda=\frac{\operatorname{median}(\chi^2_{\mathrm{observed}})}{0.4549}. $$

A value above 1 indicates that the median observed statistic exceeds the one-degree-of-freedom null median. It does not establish that a test is miscalibrated. If many variants have genuine effects, their contribution can raise the median. Population structure, relatedness not adequately modeled, or other systematic errors can also raise it. Conversely, a value near 1 does not guarantee that every part of the p-value distribution is well behaved: problems concentrated in a tail or in a subset of variants may be obscured by a median summary.

Worked Example: Interpreting a Genomic Inflation Factor

In a hypothetical analysis of 50,000 variants, the median one-degree-of-freedom chi-square statistic is 0.570. Calculate \(\lambda\), then interpret what the result can and cannot show.

Using the null median 0.4549,

$$ \lambda=\frac{0.570}{0.4549}=1.253. $$

The median observed statistic is about 25.3% larger than the one-degree-of-freedom null median. This flags a genome-wide upward shift worth investigating. It does not show that every variant is inflated, nor does it separate genuine polygenic signal from confounding or model failure. A design-preserving null simulation can add evidence: if simulated null statistics have a median near 0.455 while the observed distribution is shifted upward, the observed shift is not reproduced by that null model. Researchers still need to consider true associations and whether the null generator adequately represents the design.

In particular, an observed genome-wide shift and a failure of the test procedure under its intended null are related but distinct findings. Simulations generated under a credible null model assess the procedure conditional on the modeled design. Genome-wide summaries describe the actual analyzed data, which may contain true effects as well as unwanted sources of association. Neither a QQ plot nor \(\lambda\) alone can assign the excess to one source.

Quantifying Calibration in Simulations

A direct calibration check is to estimate the rejection rate at one or more nominal levels. If \(B\) independent null simulations are run and \(R\) tests reject at level \(\alpha\), the empirical rejection rate is \(R/B\). Under exact calibration, \(R\) has a binomial distribution with \(B\) trials and success probability \(\alpha\), provided the simulation replicates are independent and generated under the specified null. Its expected value is \(B\alpha\), and its standard error as a rate is approximately \(\sqrt{\alpha(1-\alpha)/B}\). A deviation from \(B\alpha\) should be judged against this simulation variability, as well as uncertainty in the fitted null model.

Worked Example: Assessing a Simulated Rejection Rate

A hypothetical null-calibration run uses \(B=999\) independent replicates and checks a nominal level \(\alpha=0.01\). The test rejects in \(R=29\) replicates. Calculate the empirical rejection rate and compare it with the nominal rate.

The empirical rejection rate is

$$ \frac{R}{B}=\frac{29}{999}=0.0290. $$

The nominal rate predicts \(999(0.01)=9.99\) rejections on average. Under the binomial reference, the standard error of the rejection rate is approximately

$$ SE=\sqrt{\frac{0.01(1-0.01)}{999}}=0.00315. $$

The observed rate of 0.0290 is well above 0.01 and is not plausibly explained by ordinary simulation variation alone. This is evidence that the test is anticonservative under the particular null-generation setup, or that the setup and test assumptions are not aligned. It does not by itself identify which assumption or implementation is responsible. The next step is to check the null generator, dependence structure, covariate handling, and test implementation.

Common Mistakes and Practical Interpretation

  • Calling every excess of small p-values a calibration failure. The reasoning is that a uniform null distribution should have few small p-values, so any excess must mean the test is broken. The correction is that uniformity applies to true null tests; real genetic effects and a mixture of null and non-null variants can also alter the genome-wide distribution.
  • Using unrestricted permutation when exchangeability fails. Shuffling outcomes across ancestry groups, covariate levels, or related participants can destroy features that the null distribution must retain. Use a justified restricted permutation or a null simulation that models those features.
  • Interpreting \(\lambda\) as a universal correction factor. A value above 1 is a diagnostic summary, not proof of confounding and not a complete description of calibration. Examine the full distribution and compare it with credible null simulations.
  • Treating a finite simulation estimate as exact. A small number of replicates gives substantial Monte Carlo uncertainty, particularly for very small tail probabilities. Report the number of replicates and increase it when the question concerns rare tail events.
Key takeaway: A meaningful null-calibration check reproduces the study features relevant to the association test, then reruns the test under a genetic null. Interpret simulated rejection rates and genome-wide inflation summaries as evidence about different questions; neither is a stand-alone diagnosis of the cause of excess association signals.

Check Your Understanding

Try these questions without looking back.

  1. Why are null p-values expected to be uniform under a continuous, correctly specified test?
  2. What study features might a null simulation need to preserve when testing genetic association?
  3. Why can global phenotype permutation be invalid when phenotype and genotype both vary with ancestry?
  4. A one-degree-of-freedom analysis has \(\lambda=1.20\). What does this establish, and what does it not establish?
  5. In 2,000 independent null simulations, how many rejections are expected at nominal level 0.05, and why might the observed count differ from that number?
Clinical Biostats