Skip to content
Ancestrify
All stories

qpAdm

By Andi Thomaj
4 min read

How to read qpAdm results: p-value, Z-score and SE

A plain reading guide to the three numbers in every qpAdm result — what the p-value tests, what a standard error bounds, what a Z-score rules out — with worked examples and the mistakes that make a passing model wrong.

qpAdmMethodologyAdmixturePopulation geneticsGuides

  1. The table you are reading
  2. 1. The p-value: is this model admissible?
  3. 2. The standard error: how well is each weight pinned down?
  4. 3. The Z-score: is this source distinguishable from zero?
  5. 4. The weights, at last
  6. The bar we publish against
  7. Reading a rejection
  8. Three worked misreadings
  9. Checking a result yourself
  10. References

A qpAdm result is a short table: one p-value for the model, and for every source a weight, a standard error and a Z-score. People read the weights and skip the rest, which is exactly backwards. The weights are the claim; the other three numbers are what decide whether the claim is worth anything.

This guide reads the table in the right order. If you want the method itself — what qpAdm computes and why outgroups matter — start with Understanding qpAdm; if you are deciding whether to buy a test at all, start with whether qpAdm is worth it.

The table you are reading#

p-value: 0.231   chi-square: 12.09   dof: 10   f4 rank: 2
min SNPs per f4: 118,402   merged SNPs: 214,910   jackknife blocks: 706
Anatolian_Neolithic_Farmer   0.541   SE 0.028   Z 19.3   95% CI 0.486 to 0.596
Western_Steppe_Herder        0.312   SE 0.031   Z 10.1   95% CI 0.251 to 0.373
Western_Hunter_Gatherer      0.147   SE 0.024   Z  6.1   95% CI 0.100 to 0.194
right set: 14 populations (shown in full, with sample counts)

Four kinds of number, read in this order: p-value first, then standard errors, then Z-scores, then — only then — the weights. The rest of the header (chi-square, degrees of freedom, rank, SNP counts, blocks) and the confidence intervals are the record behind those four; they are read in The model record explained.

1. The p-value: is this model admissible?#

The p-value answers one question: is the pattern of shared drift in the data compatible with the mixture I proposed? It comes from a test of the f4-statistics between the target, the sources and the outgroups; a high value means the data do not contradict the model, a low value means they do.

Three things it is not:

  • Not the probability the model is true. It is a compatibility test on one specific proposal.
  • Not a measure of how much ancestry came from anywhere. That is the weights' job.
  • Not comparable across models with different right sets. A p-value is only meaningful against the outgroups it was computed with, which is why the right set must be published beside it.

The conventional threshold is p > 0.05. Below it, the model is rejected and the weights are not worth reading. Above it, the model is not refuted — which is a much weaker statement than "confirmed", because several mutually incompatible models can all clear the same bar.

⚠️ A very high p-value is not automatically better. A thin or poorly chosen right set makes almost everything pass; p = 0.9 against six outgroups says less than p = 0.2 against fourteen distant ones.

2. The standard error: how well is each weight pinned down?#

Every weight carries a standard error, estimated by block jackknife across the genome. Read a weight as a range, not a point: 0.312 ± 0.031 means "roughly 25–37% at two standard errors", and that range is the finding.

What sets the standard error is mostly coverage — how many markers survive the merge between your genotypes and the reference panel — and how distinct the sources are from one another. Two consequences follow that are widely misunderstood:

  • Analyst effort cannot shrink a standard error. If a sparse file fixes SE at 0.12, a longer search will find different models, not tighter ones.
  • Similar sources inflate each other's errors. Asking the model to split ancestry between two closely related populations produces two large SEs even on a dense file, because the data cannot tell them apart.

A useful private rule: if a weight is smaller than twice its own standard error, do not repeat it as a percentage.

3. The Z-score: is this source distinguishable from zero?#

The Z-score is the weight divided by its standard error. It tells you how many standard errors the weight sits from nothing at all. A source at Z = 1.2 is not measurably contributing, whatever its headline weight; a source at Z = 10 unambiguously is.

This is the number that catches the most common over-reading. Consider:

p-value: 0.088
Neolithic_Farmer     0.907   SE 0.094   Z 9.6
Steppe_Herder        0.093   SE 0.094   Z 1.0

The p-value clears 0.05 and a careless reader reports a 91/9 mixture. But the second weight equals its own standard error: it is statistically indistinguishable from zero. The honest reading is a one-source model, and the correct next step is to test it as one — if the single-source version also passes, the extra source was never earning its place.

4. The weights, at last#

With the p-value admissible, every SE small and every Z large, the weights can be read as proportions of ancestry — from the proxy populations named, measured against the outgroups listed, for the target as merged. Each of those qualifiers does work. Change the outgroups and the weights move; substitute a closer proxy for one source and they move again. A weight is a property of a model, not of a person.

The bar we publish against#

Because "good fit" is vague, our published models are graded against explicit thresholds, the same at every tier of Ancient Ancestry, our qpAdm analysis: p > 0.05, and for every source in every era |Z| > 3 and SE < 0.10. Nothing about the bar moves with the price. Three things that bar deliberately does not do: it does not prefer a higher p-value once admissible, it does not reward more sources, and it does not let a model through because its story is appealing.

Reading a rejection#

A rejected model (p below 0.05) is a result, not a malfunction. It says the proposed ancestry story is incompatible with the data given those outgroups. The productive responses, in order: check the right set for outgroups too close to a source; check chronology, since a source that postdates the target cannot be its ancestor; try a simpler model; and accept that some questions cannot be resolved at your file's coverage. What is not legitimate is rotating sources and outgroups until something passes: run enough models and one will clear any threshold by chance, which is why Harney and colleagues (2021) warn against exactly that practice. An automated search can propose candidate models, but it cannot publish one: a person reviews the candidates and approves every published model. The audit literature's lesson is that a search's error rate depends mostly on how plausible its candidates were before testing, not on whether a script or a person ran it, so the candidate sources are chosen for your declared origins before any model runs.

Three worked misreadings#

"My steppe ancestry went up in the refined version." The refined version found a different model, with a better proxy or a cleaner outgroup set, and the weights moved. Neither figure is "your steppe ancestry"; each is a model's estimate against its own right set.

"p = 0.62 must be a stronger result than p = 0.14." Only if the right sets are the same. Check their size and composition before comparing.

"Four sources fit better than three, so the four-source model is right." Adding a source tends to improve fit mechanically. If the three-source nested model also passes, and the fourth source's Z is small, the three-source model is the one to report.

Checking a result yourself#

Every number above is printed in our reports, with the right set in full, so anyone who understands the method can re-run it — and the report's Your model view adds the model record (chi-square, degrees of freedom, every panel label, sample count and confidence interval), so the whole model can be handed to another analyst. Two free routes: the AdmixTools 2 Lab runs real qpAdm over the public AADR panel in the browser, and the Ancestry Workbench lets you run models on your own merged sample, see Run your own qpAdm models. The vocabulary used here is defined in the glossary, and the comparison with coordinate methods, which have none of these three numbers, is in qpAdm vs Global25.

From €29.99 · one-time
The tested version of this question
A qpAdm model tested against AADR v66 and approved by a person, published with its p-value, every source's standard error and z-score, and the full right set, so the result can be argued with.
See Ancient Ancestry

References#

  • Patterson, N. et al. (2012). Ancient admixture in human history. Genetics, 192(3), 1065–1093.
  • Haak, W. et al. (2015). Massive migration from the steppe was a source for Indo-European languages in Europe. Nature, 522, 207–211 (Supplementary Information 10 introduces qpAdm).
  • Harney, É., Patterson, N., Reich, D. & Wakeley, J. (2021). Assessing the performance of qpAdm: a statistical tool for studying population admixture. Genetics, 217(4), iyaa045.
  • Maier, R. et al. (2023). On the limits of fitting complex models of population history to f-statistics. eLife, 12, e85492.
  • Flegontova, O. et al. (2025). Performance of qpAdm-based screens for genetic admixture on graph-shaped histories and stepping stone landscapes. Genetics, 230(1), iyaf047.

Related posts

Every number in your qpAdm report: the model record explained, with a worked example
Every number in your qpAdm report: the model record explained, with a worked example

What every number in the model record of an Ancestrify qpAdm report means, from chi-square, degrees of freedom and f4 rank to 95% confidence intervals, what the analyst checked before publishing, and a worked example read line by line, with the R code to rerun it.

18 min read
qpAdm vs ADMIXTURE and admixture calculators: what each measures, and when qpAdm is worth it
qpAdm vs ADMIXTURE and admixture calculators: what each measures, and when qpAdm is worth it

ADMIXTURE and admixture calculators describe structure and always return percentages; qpAdm tests an explicit model and can reject it. What each estimates, why papers run both, and when qpAdm is worth paying for.

12 min read
What is an admixture calculator? How ancestry percentages are actually computed
What is an admixture calculator? How ancestry percentages are actually computed

Every admixture calculator — GEDmatch's classics, Global25 fits, testing-company estimates — is an optimiser that cannot say no. How the three families work, what the percentages mean, and the questions a calculator can and cannot answer.

5 min read
Back to all stories
Ancestrify

Combining cutting-edge genomic science with rich historical records to map your ancestry across generations and continents.


© 2026 Ancestrify. All rights reserved. · Ancestrify is a trading name of Andi Thomaj, a sole trader registered in Tiranë, Albania · NUIS M61725001N
Card payments processed by POK Payments (RPay Ltd)VISAMASTERCARD