Stats You Can't Avoid: p-values, Distributions, and Effect Sizes

Every differential-expression table, every GWAS hit, every "significant" result you will ever produce rests on a few statistical ideas. Most people never learn them properly and pay for it later with retracted figures and unreproducible claims. This lesson gives you the working understanding: what a distribution is, what a p-value actually means (and the things people wrongly think it means), and why an effect size matters more than a p-value.

🟡 Cross-cutting ⏱️ ~1 hr 🌐 Runs in your browser 🧮 Statistics

Before you start

  • Comfortable with basic arithmetic and the idea of an average. No prior statistics needed.
  • You have seen a results table from an analysis (a volcano plot, a DESeq2 output, a GWAS Manhattan plot) or will soon. This lesson explains the numbers in those tables.
  • Any term new? The Glossary has it.

Learning objectives

By the end of this lesson you will be able to: say what a p-value is and is not, read an effect size, and tell statistical significance apart from biological importance.

Why a biologist has to care about statistics

Biology is noisy. Two genetically identical cells given the identical treatment will not produce identical measurements. So when you see gene X go up 1.4-fold between treated and control, the real question is never "did it change?" (the numbers are always at least slightly different). The question is: could a difference this big have happened just by chance, given how noisy the measurements are? Statistics is the toolkit for answering that question honestly. Skip it, and you will confidently report noise as discovery.

Distributions: the shape of your data

A distribution describes how often each value occurs. It is the single most important concept here, because every statistical test assumes your data follow some distribution, and choosing the wrong one gives wrong answers. Three you will meet constantly:

  • Normal (Gaussian, the "bell curve"). Symmetric, described by a mean and a standard deviation. Heights, measurement errors, and many log-transformed quantities are roughly normal. Many classic tests (the t-test) assume it.
  • Binomial. Counts of successes out of a fixed number of yes/no trials, like how many of 50 sequencing reads carry the alternate allele. The foundation of variant calling.
  • Negative binomial. The workhorse for RNA-seq counts. Read counts per gene are non-negative integers and are "overdispersed" (their variance is larger than a simple Poisson would predict because of biological variability between samples). This is exactly why DESeq2 and edgeR model counts with the negative binomial rather than assuming a normal bell curve, and why you should never run a plain t-test on raw counts.

Decode the jargonStandard deviation

A measure of spread: how far, on average, individual values sit from the mean. Small standard deviation means the data cluster tightly; large means they are spread out. Noise lives here, and statistical tests are essentially comparing the size of an effect against the size of this spread.

The null hypothesis and the logic of a test

A hypothesis test does something slightly counterintuitive: it starts by assuming nothing interesting is happening. That assumption is the null hypothesis (often written H0), for example "this gene's expression is the same in treated and control." You then ask: if the null were true, how surprising is the data I actually observed? If the data would be very unlikely under the null, you have grounds to reject the null in favor of the alternative ("the gene did change").

The number that quantifies "how surprising" is the p-value.

What a p-value actually is

Here is the precise definition, worth memorizing word for word:

A p-value is the probability of observing data at least as extreme as what you saw, assuming the null hypothesis is true.

A small p-value (say 0.001) means: if there were truly no effect, data this extreme would happen only 1 time in 1000. That is surprising enough that most fields agree to "reject the null." The conventional, and entirely arbitrary, threshold is 0.05, a convention from Ronald Fisher in the 1920s, not a law of nature.

⚠️ What a p-value is NOT (the misreadings that ruin papers)

It is not the probability that the null hypothesis is true. It is not the probability your result happened "by chance." It is not a measure of how big or important the effect is. And p = 0.04 versus p = 0.06 is not a meaningful difference in evidence, despite one being "significant" and the other not. The American Statistical Association issued a formal statement in 2016 precisely because these misinterpretations are so widespread and so damaging.

See it for yourself: simulate the null

The clearest way to understand a p-value is to build the null world and look. Below, we assume a coin is fair (the null), flip it 100 times in thousands of imaginary experiments, and ask how often we would see a result as extreme as 64 heads. That fraction is the p-value. Press Run (the first run loads Python in your browser and takes a moment).

Change observed_heads to 52 and rerun: the p-value shoots up, because 52 heads is not surprising for a fair coin at all. Change it to 70 and it nearly vanishes. You are watching the definition of a p-value in action.

Effect size: the question the p-value ignores

A p-value tells you whether an effect is detectable. It says nothing about whether the effect is big enough to matter. With a huge sample, a trivially small difference can be wildly "significant"; with a tiny sample, a large, real effect can miss the 0.05 cutoff. That is why you must always report an effect size alongside the p-value.

Effect sizeWhat it measuresWhere you'll see it
Fold change / log2 fold changeHow many times larger one group's value is than another'sRNA-seq, the x-axis of every volcano plot
Cohen's dDifference between two means measured in standard deviationsComparing continuous measurements between two groups
Odds ratio / relative riskHow much an exposure changes the odds of an outcomeGWAS, epidemiology, case-control studies
Correlation coefficient (r)Strength and direction of a linear relationshipComparing two continuous variables

This is why a volcano plot has two axes: effect size (log2 fold change) on x and statistical significance (−log10 p) on y. The genes you care about are large on both: a real, big change that is also unlikely to be noise. A gene with a tiny fold change but a microscopic p-value is statistically significant and biologically boring.

Decode the jargonStatistical vs. practical (biological) significance

"Statistically significant" only means "unlikely under the null." It does not mean large, important, or real-world relevant. A drug that lowers a biomarker by 0.3% with p < 0.0001 is statistically significant and clinically useless. Always ask both "is it detectable?" and "is it big enough to care about?"

Sample size, power, and why small studies mislead

Statistical power is the probability that your study will detect a real effect if one exists. It rises with sample size and with effect size, and falls when the data are noisy. Underpowered studies (too few samples, common in biology where samples are expensive) have two nasty properties: they miss real effects (false negatives), and the "significant" hits they do report are inflated and often wrong in direction or magnitude, the "winner's curse." This is a major driver of the reproducibility crisis. Three biological replicates is a starting point for RNA-seq, not a guarantee of adequate power.

The mental checklist for any result

  1. What is the null hypothesis? If you can't state it, you can't interpret the p-value.
  2. What is the effect size, and is it biologically meaningful? Not just the p-value.
  3. Is the test appropriate for the data's distribution? Counts are not normal; use count-aware methods.
  4. How many tests were run? One p-value of 0.05 is one thing; 20,000 of them is the subject of the next lesson.

Check your understanding

A reviewer writes: "Your p-value of 0.02 means there is a 98% chance the gene is truly differentially expressed." What is the best response?
Correct. A p-value is computed assuming the null is true; it cannot tell you the probability that the null (or the alternative) is true. Converting "p = 0.02" into "98% chance it's real" is one of the most common and serious statistical errors, flagged explicitly in the ASA's 2016 statement.
Gene A: log2 fold change 0.05, p = 1e-12. Gene B: log2 fold change 3.0, p = 0.03. A collaborator wants to follow up only Gene A because its p-value is far smaller. What is the soundest critique?
Exactly. A microscopic p-value with a near-zero effect size usually signals a real-but-trivial difference detected because the study was highly powered. Gene B's log2FC of 3.0 is an 8-fold change, biologically substantial. You need both axes; significance alone is not a ranking of importance.
A colleague runs a standard Student's t-test directly on raw RNA-seq read counts and is puzzled that established tools like DESeq2 give different results. What is the core statistical problem?
Right. The t-test assumes roughly normally distributed values. RNA-seq counts are discrete, bounded at zero, and overdispersed (variance > mean). DESeq2 and edgeR model them with the negative binomial and share information across genes to estimate dispersion, which is why they are the field standard and a raw t-test is not.
Why do tools like DESeq2 and edgeR model RNA-seq read counts with a negative binomial distribution rather than a normal one?
Correct. Gene-level counts are discrete, bounded at zero, and overdispersed, so a normal bell curve fits poorly. The negative binomial captures that extra variance, which is why it is the standard for count-based RNA-seq tools.
A study uses only two replicates per group and reports a single "significant" hit. Why should you be cautious about that hit even if its p-value is below 0.05?
Right. Low statistical power both misses true effects and exaggerates the surviving "significant" ones in magnitude or direction. This winner's-curse effect is a key driver of irreproducible results, so small-sample hits deserve extra skepticism and replication.

Sources & further reading

  1. Wasserstein RL, Lazar NA. The ASA Statement on p-Values: Context, Process, and Purpose. The American Statistician, 2016. doi:10.1080/00031305.2016.1154108
  2. Amrhein V, Greenland S, McShane B. Retire statistical significance. Nature 567, 305–307, 2019. (One of the most-discussed statistics commentaries ever, signed by 800+ scientists.) doi:10.1038/d41586-019-00857-9
  3. Wasserstein RL, Schirm AL, Lazar NA. Moving to a World Beyond "p < 0.05". The American Statistician 73(sup1), 1–19, 2019. doi:10.1080/00031305.2019.1583913
  4. Nuzzo R. Scientific method: Statistical errors. Nature, 2014. (A readable tour of how p-values are misused.)
  5. Halsey LG, et al. The fickle P value generates irreproducible results. Nature Methods, 2015.
  6. Love MI, Huber W, Anders S. Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2. Genome Biology, 2014. (Why counts use the negative binomial.)
  7. Button KS, et al. Power failure: why small sample size undermines the reliability of neuroscience. Nature Reviews Neuroscience, 2013.

Last reviewed: June 2026.

Next in Track 5

The multiple-testing problem →