Skip to content

How to read qpAdm results: p-values, weights and standard errors

What a qpAdm p-value, weights and standard errors mean, when a model is feasible, and the checks that separate a good model from a lucky fit.

Updated 3 min read

A qpAdm model is feasible when its p-value is above your threshold (usually 0.05) and every weight is between 0 and 1. A feasible model is consistent with the data; it is not proven. To trust it, check its standard errors, the nested models and the competing models that fail.

This guide assumes you know what a qpAdm model is. If not, start with What is qpAdm?.

The p-value: does the model fit?

qpAdm tests whether the target's f4-statistics against the right populations are explained by the sources. The p-value is the probability of seeing a misfit at least this large if the model were true.

  • p < 0.05 (or 0.01): the model is rejected. The sources do not explain the target, as seen from the right populations. Often a source is missing, or a source is the wrong proxy.
  • p ≥ 0.05: the model is not rejected. This is the result you want, but it is weaker than it sounds.

A high p-value can also mean the test has no power: too few SNPs, a low-coverage target, or right populations that cannot tell your sources apart. In that case almost any model passes.

Weights: how much ancestry from each source

The weights (also called coefficients or ancestry proportions) sum to 1. A model with weights of 0.15, 0.55 and 0.30 says the target is 15% from the first source, 55% from the second and 30% from the third.

Weights outside 0 to 1 are a warning. A negative weight means the model only fits by subtracting a source, which is not a real history. Treat a model with a negative weight as infeasible, even if its p-value is high.

Standard errors: how precise the weights are

Each weight comes with a standard error from a block jackknife. A weight of 0.30 ± 0.02 is precise. A weight of 0.30 ± 0.15 is not: the true value could be anywhere from about 0 to 0.6.

Large standard errors usually mean the right populations do not separate the sources well, or the target has few SNPs. Adding a right population that is related differently to the two hard-to-separate sources often helps. See Choosing right populations.

Nested models: is every source needed?

qpAdm also reports nested models, each with one source dropped. If a model without source S3 is still feasible, S3 may not be needed. Prefer the simplest model that fits, unless you have another reason to keep the extra source.

Checks before you report a model

  1. Competing sources. Replace each source with a related population and run again. If many alternatives fit equally well, your data cannot tell them apart.
  2. Rotation. Move candidate sources into the right list. A source that still fits when its neighbours are references is better supported.
  3. Drop one right population at a time. If the model fails when one right population leaves, the fit depends on that population.
  4. Coverage. Count the SNPs the run used. As a rough guide, a run on fewer than about 100,000 SNPs gives large standard errors and a weak test.

Nexju runs these checks for you on the Pro plan, as qpAdm robustness checks: dropping right populations, competing source sets and adding a source.

A worked example

Suppose you model English with Luxembourg_Loschbour_Mesolithic, Turkey_N and Russia_Samara_EBA_Yamnaya as sources and a panel of distant right populations. An illustrative result: p = 0.3, weights near 0.1, 0.4 and 0.5, and standard errors near 0.02. This model is feasible and precise.

Now drop the Yamnaya source. If the two-source model gets p = 1e-10, steppe-related ancestry is required. That rejected model is as informative as the feasible one.

References

QQuestions

Frequently asked questions

Short answers to the questions people ask most about this topic.

What p-value should I use for qpAdm?

Most studies treat p < 0.05 as a rejection, and some use p < 0.01. Pick one threshold before you run your models, and use it for every model you compare.

What does a negative weight in qpAdm mean?

The model only fits by subtracting ancestry from a source, which no real history does. Treat it as infeasible, even if its p-value passes. A source is usually a poor proxy, or a missing source is being absorbed.

Why do many different qpAdm models fit my target?

The right populations probably cannot tell the alternative sources apart, or the target has few SNPs. Add right populations that relate differently to the competing sources, and compare the models with rotation.

Does a higher qpAdm p-value mean a better model?

No. Any p-value above the threshold means the data do not reject the model. Compare feasible models by their weights, standard errors and nested models, not by their p-values.

Every help article

Allow analytics cookies? They help us see how the site is used so we can improve it. Your DNA and results are never included. Details