← All posts

Understanding Bland–Altman Plots: Agreement, Bias, and When to Use Percent vs Absolute

Clinical Epidemiology ResearchUniqcret doctor knowledgesMethodology and Research DesignDiagnosis [Methodology]
Understanding Bland–Altman Plots: Agreement, Bias, and When to Use Percent vs Absolute
On this page

A Bland–Altman (BA) plot answers one very practical question: can these two ways of measuring the same thing be used interchangeably? It is the standard tool for a method-comparison or agreement study — a new device against a reference device, a bedside test against the lab, one rater against another. This guide rebuilds the plot from scratch, shows the numbers it produces (not just the picture), walks through a worked example, and teaches you to recognise the handful of patterns that tell you what is wrong and how to fix it.

The one idea to hold onto

A high correlation ($r$) does not mean good agreement. Two methods can correlate almost perfectly and still disagree by a clinically dangerous amount — correlation measures whether they move together, agreement measures whether they give the same number. Bland–Altman is built to measure the second thing.

1) Anatomy of a Bland–Altman plot

Take every subject measured by both methods. For each one you compute two values and plot a single dot:

  • x-axis — the mean of the two methods, $\frac{\text{new}+\text{ref}}{2}$. This is our best estimate of the subject's true value (we usually don't know the truth, so the average stands in for it).
  • y-axis — the difference, $\text{new}-\text{ref}$. This is the disagreement for that one subject.

Three horizontal lines are then drawn from the differences:

  • the bias (the mean difference, $\bar d$) — the average gap between the methods;
  • the upper and lower limits of agreement (LOA), $\bar d \pm 1.96\,s_d$, where $s_d$ is the SD of the differences. The shaded band between them is where about 95% of individual differences fall.
Each dot is one subject measured by both methods. The solid line is the bias (here $+2.0$ mg/dL — the new method reads, on average, $2$ higher). The dashed lines are the limits of agreement; the shaded band holds ~95% of differences. Why $1.96$? Because for a roughly normal distribution, 95% of values lie within $\pm 1.96$ SD of the mean.

2) Bland–Altman gives you numbers, not just a picture

This is the part most people miss. The plot is the picture, but the analysis produces a small set of reported numbers — and those numbers, not a vague glance at the cloud, are what you put in the paper and what you judge.

+2.0
Bias / mean difference (mg/dL) — average over- or under-reading
5.0
SD of the differences — how much the gap scatters
+11.8
Upper limit of agreement ($\bar d + 1.96\,s_d$)
−7.8
Lower limit of agreement ($\bar d - 1.96\,s_d$)
±95% CI
Confidence intervals for the bias and for each limit — the precision of the estimates
slope $b$
Proportional-bias check: regress difference on mean (Section 7)

Worked example. You compare a new glucose meter against the laboratory in $N$ paired samples. The analysis returns:

Bias $\bar d = +2.0$ mg/dL, SD of differences $s_d = 5.0$ mg/dL, so the limits of agreement are $2.0 \pm 1.96 \times 5.0 = $ −7.8 to +11.8 mg/dL.

In plain language: on average the new meter reads $2$ mg/dL high — but for an individual patient the gap could plausibly be anywhere from about $8$ below to $12$ above the lab. The bias tells you the systematic tilt; the LOA tell you how far a single reading can stray. Both come straight out of the data — the plot just lets you see whether trusting those two numbers is safe.

Reporting template (drop-in)

“We compared the new method with the reference in $N$ paired measurements. The mean difference (bias) was $+2.0$ mg/dL (95% CI …), with 95% limits of agreement of $-7.8$ to $+11.8$ mg/dL. The Bland–Altman plot showed no proportional bias. The limits fell within our pre-specified clinical limit of $\pm X$ mg/dL, so the methods can/cannot be used interchangeably.”

The 95% CIs are worth a sentence: the bias has standard error $s_d/\sqrt{N}$, and each limit of agreement has a noticeably larger one — about $1.71\,s_d/\sqrt{N}$, roughly $1.7\times$ the bias's standard error. With a small sample the limits themselves are uncertain — a reason not to over-read a tight-looking band from $n=12$.

3) Reading it — and judging it clinically

A four-step read of any BA plot:

  1. Is the bias near zero? If the bias line sits well off $0$, one method is systematically higher or lower.
  2. Are the limits of agreement clinically acceptable? This is the decision that matters — see below.
  3. Is there a pattern? A flat random cloud means mostly noise; a horizontal offset means constant bias; a tilt or a fan means proportional bias (Sections 5–7).
  4. Is the scale right? If the absolute plot fans out, switch to the percent or log version (Section 6).

The limits are judged against a clinical threshold, not a p-value

“Are the limits narrow enough?” has no statistical answer — only a clinical one. You must set an acceptable limit before the study and compare the LOA to it:

  • Body weight: a $\pm 1$ kg disagreement is usually harmless.
  • Serum potassium: a $\pm 1$ mmol/L disagreement can be dangerous — it spans normal to life-threatening.
  • Blood pressure: a $\pm 10$ mmHg disagreement can flip a hypertension diagnosis.

The very same LOA can be “fine” for one quantity and “unusable” for another. Never report limits without comparing them to a pre-set clinically acceptable difference.

4) The per-subject calculations

For each subject $i$, with index (new) value $x_i$ and reference value $y_i$:

$$\text{mean}_i=\frac{x_i+y_i}{2}, \qquad d_i=x_i-y_i, \qquad \text{pct}_i = 100\times\frac{x_i-y_i}{(x_i+y_i)/2}$$

Then summarise across subjects: bias $\bar d=\operatorname{mean}(d_i)$, spread $s_d=\operatorname{SD}(d_i)$, and $\text{LOA}=\bar d\pm 1.96\,s_d$. One subject, end to end: new $=120$, ref $=118$ → mean $=119$, difference $=+2$ mg/dL, percent $=100\times 2/119 \approx 1.7\%$.

5) Fixed bias vs proportional bias

The two systematic errors look completely different on the plot, and they need different fixes.

A fixed (constant) bias is the same number at every level. Suppose the new method always reads $2$ units high:

ReferenceNewDifference
1012+2
5052+2
100102+2
200202+2

On the plot this is a flat band offset from zero. A proportional bias instead grows with the size of the thing measured — say the new method always reads about $10\%$ high:

ReferenceNewDifference (absolute)Difference (%)
1011+1+9.5%
5055+5+9.5%
100110+10+9.5%
200220+20+9.5%

The absolute difference climbs $+1 \to +5 \to +10 \to +20$ even though the error is a constant $\approx 10\%$ of the reading. On the BA plot the dots tilt upward / fan out:

The amber line is the fitted trend (the difference regressed on the mean) — compare its slope across the two panels. Left — constant bias: a flat band at $+2$ with a flat trend (slope ≈ 0); the gap is the same at every level. Right — proportional bias: the points climb and the trend rises steeply because the error is a constant fraction of size. The fix differs: subtract the offset for a constant bias, but rescale (not subtract) for a proportional one.

6) Percent and log Bland–Altman: the same data, a fairer scale

Absolute units can mislead when the error is proportional. Read literally, the right-hand plot above seems to say “the method is far worse at high values.” But it isn't worse — the error is a steady percentage; it only looks bigger because $10\%$ of a big number is a big number.

The percent BA plot fixes this by dividing each difference by the mean of the two methods: $\text{pct}_i = 100\times (x_i-y_i)/\text{mean}_i$. The same proportional data now sits as a flat band at about $+10\%$:

Identical data, two scales. Left (absolute): bias +13.5 mg/dL, limits +1.9 to +25.2 — fans out, hard to interpret. Right (percent): bias 10%, limits 2.6% to 17.2% — flat and easy to read as “about 10% high everywhere.” (Some authors divide by the reference instead of the mean; the picture is the same.)

Two things scale together here, and the percent (or log) plot flattens both: the systematic part — a constant % bias, which makes the absolute cloud tilt — and the random part — a constant % scatter (constant coefficient of variation), which makes it fan out. A pure proportional bias with no extra noise would only tilt; real proportional error usually does both.

A log transform goes one step further and turns differences into ratios. Instead of $\text{new}-\text{ref}$ you analyse $\log(\text{new})-\log(\text{ref})=\log(\text{new}/\text{ref})$, then back-transform. The result reads as “how many times” one method is relative to the other:

For example: geometric mean ratio $=1.08$, 95% limits of agreement $0.90$ to $1.30$ — i.e. on average the new method reads about 8% high, and an individual reading runs from about $10\%$ below to $30\%$ above the reference. (In a log analysis the mean ratio is the geometric centre of the limits, $\sqrt{0.90\times1.30}\approx1.08$.)

When NOT to use percent or log

If values can be zero or near zero, percent differences explode (you divide by almost nothing) and logs are undefined. There, stay on the absolute scale or model the variance directly.

7) The trap: a perfect-looking bias of zero

Here is the most dangerous pattern, because it hides behind a reassuring summary number. Consider:

Mean of methodsDifference (new − ref)
10−10
50−5
1000
150+5
200+10

The mean difference is exactly $0$. Report only the bias and you would call this a perfect method. But it is wrong almost everywhere: it reads too low at low values and too high at high values — it only happens to be right in the middle. The pattern is invisible in the bias and obvious in the plot:

Bias $\approx 0$, yet a clear upward slope through zero. The average cancels out, but no individual patient is measured well except those near the centre. Lesson: always look at the pattern, never trust the mean difference alone.

Detecting proportional bias with a number

You don't have to eyeball it. Regress the difference on the mean:

$$d_i = a + b\cdot \text{mean}_i$$

The slope $b$ is the proportional bias. If $b\approx 0$ the band is flat (no proportional bias). If $b>0$, higher values read progressively higher; if $b<0$, higher values read progressively lower. A slope significantly different from $0$ is your statistical confirmation of what the tilt shows.

8) The five patterns at a glance

Almost every BA plot is one of five shapes. For each, here is what the absolute plot looks like, what the percent plot looks like, what it means, and what to do.

① Random difference

Absolute: a symmetric cloud around $0$, constant spread. Percent: similar cloud, but the % error shrinks as the mean grows (the same noise divided by a bigger number). Meaning: mostly random measurement noise. Do: improve precision (calibration, rater training) and average replicates.

② Constant difference (fixed offset)

Absolute: a flat band offset from $0$, even spread. Percent: the % error decreases as the mean rises (same offset over a larger value). Meaning: one method is consistently higher/lower by a fixed amount. Do: apply an offset correction or recalibrate.

③ Proportional difference (scale error)

Absolute: the spread/difference grows with the mean — a fanning shape. Percent: a flat band around a constant %. Meaning: error is a constant fraction of magnitude (constant CV). Do: apply a scaling correction — fit difference vs mean (or Passing–Bablok / Deming regression) and rescale, then re-check.

④ Proportional + constant difference

Absolute: a clear slope plus a non-zero intercept. Percent: a band above $0\%$ that tilts as the offset fades at high values. Meaning: a fixed offset and a proportional component together. Do: correct both intercept and slope (a full calibration line), then reassess.

⑤ Mixed

Absolute: slope, offset, and a spread that changes across the range (heteroscedasticity). Percent: the proportional part becomes clearer. Meaning: several error sources at once. Do: diagnose in parts — fit the bias line, consider piecewise regions, check the changing variance, correct stepwise and re-plot. With repeated measurements per subject, use within-subject (repeatability) methods.

9) Agreement vs reliability — don't mix them up

Agreement asks “are the two methods close, in real units?” — that's Bland–Altman, bias and LOA. Reliability asks “can repeated measurements consistently tell subjects apart?” — that's the ICC (continuous) or kappa (categorical). They can disagree: a measurement can have a high ICC (it ranks patients well because they are spread out) and still have poor agreement (wide LOA). Bland–Altman answers the interchangeability question; the ICC does not.

10) Common pitfalls

  • Using correlation (or $R^2$) to claim agreement — it measures association, not sameness.
  • Reporting LOA without comparing them to a pre-set clinical limit.
  • Reading only the mean bias and missing a proportional pattern (Section 7).
  • Using percent/log when values are near zero.
  • Ignoring repeated measures — multiple pairs per subject need within-subject methods, or the LOA will be too narrow.

Key takeaways

  • numbers Bland–Altman reports bias, SD of differences, and the limits of agreement $\bar d\pm 1.96\,s_d$ — the plot just helps you trust them.
  • bias vs LOA The bias is the average gap; the limits say how far a single patient's two readings can differ.
  • judge Compare the limits to a clinical threshold you set in advance — not to a p-value.
  • pattern Flat cloud = noise; horizontal offset = constant bias; tilt/fan = proportional bias; a slope through zero can hide behind a bias of $0$.
  • scale Absolute BA for additive error; percent or log BA when the error scales with size.
  • not the ICC Use Bland–Altman for agreement, the ICC/kappa for reliability.
0
Message for International and Thai ReadersUnderstanding My Medical Context in ThailandRead more →Message for International and Thai ReadersUnderstanding My Broader Content Beyond MedicineRead more →

Comments

No comments yet. Be the first to share your thoughts.

Sign in to comment