AdvancedIndependently reviewed, not yet spot-checked by a human

Intraclass correlation and reliability

The ICC is not one coefficient, it is six. On one dataset the six legal forms span a factor of two and a half, so a paper that reports ICC = 0.85 and nothing else has not reported a result. This page first clears the naming collision with the clustered-data chapter (same variance split, different question), then takes the model / type / unit axes apart to show what each one does to the denominator, and finally explains why an ICC close to one is no guarantee that the measurement is precise.

This ICC and the one in the clustered-data chapter are the same ICC

This site has already taught the ICC once. Clustered and repeated measurements defines it as the correlation between any two observations on the same patient, and uses it to build a design effect — the penalty for treating repeated measurements as independent.

The ICC on this page is the same variance split, written as the same ratio: a between-unit variance over a total variance. What differs is the question.

  • The clustered-data chapter asks how alike two observations inside one cluster are, and a large answer is bad news — it is a nuisance to be corrected for.
  • This page asks how alike two measurements of the same subject are, and a large answer is the point — it is the result being reported.

One number, a nuisance in one place and the deliverable in the other. The collision is historical, not a misreading on your part.

ICC=σbetween subjects2σbetween subjects2+σwithin subject2\mathrm{ICC} = \frac{\sigma^2_{\text{between subjects}}}{\sigma^2_{\text{between subjects}} + \sigma^2_{\text{within subject}}}
A dot plot of 20 subjects ordered by their mean score. Each subject has a grey vertical bar spanning the range of the 3 ratings given to that person, three coloured dots for the three raters, a short black tick at the subject mean, and a dashed horizontal line for the grand mean. The standard deviation of the subject means is 0.63 while the standard deviation within a subject is 1.20 — the larger of the two is the within-subject one, which is why the ICC on this dataset is low.
The ICC is the contest between these two spreads: how far apart the subjects sit horizontally, against how tall the grey bars are.Plotting script figures/scripts/B9-02-icc.R

The unnamed reliability on the measurement-error page is this number

Measurement error defines a quantity while explaining regression dilution: reliability, the variance of the true value over the variance of the observed value. Under classical error the regression coefficient is multiplied by that constant. That page uses the quantity without saying where it comes from.

It comes from here. The variance of the true value is the between-subject variance — people really do differ — and the variance of the observed value adds the measurement variance on top. The reliability of a single measurement is the single-measurement ICC.

There is a practical consequence. Regression calibration needs a repeat-measurement substudy to estimate reliability, and the statistic that substudy has to compute is the one on this page. Pick the wrong ICC form there and the correction factor is wrong — while the corrected coefficient goes on looking perfectly respectable.

Six forms, not eight

Three axes decide which ICC you computed.

  1. Model: the rater effect is not in the model (one-way) or in the model (two-way).
  2. Type: systematic differences between raters are excluded from the denominator (consistency) or kept in it (absolute agreement).
  3. Unit: the reliability of one rating, or of the mean of k ratings.
Six ICC forms shown as point estimates with 95% confidence intervals on a horizontal axis. The same 20 subjects and 3 raters are analysed six times: the upper three rows are single-measurement forms and the lower three are average-of-k forms, each labelled on the left with its McGraw-Wong and Shrout-Fleiss code. A shaded band marks the full span of the point estimates, from 0.175 to 0.453. Several interval lower bounds fall to the left of zero.
The horizontal axis is the ICC. All six lines come from the same data — not one observation changed. What changed is which model was fitted (one-way or two-way), what sits in the denominator, and whether the unit is one rating or a mean. The two one-way lines differ from the other four in the numerator as well; the section on what each axis moves explains why.Plotting script figures/scripts/B9-02-icc.R

Three axes should give eight combinations. Only six exist, and the next section explains where the other two went.

ModelTypeUnitWhat happens to the rater effectEstimate (95% CI)
onewayignoredsinglenot modelled -- rater differences fall into the error term0.175 (-0.077 to 0.484)
onewayignoredaveragenot modelled -- rater differences fall into the error term0.389 (-0.275 to 0.738)
twowayconsistencysinglefixed -- estimated, then excluded from the denominator0.216 (-0.046 to 0.522)
twowayconsistencyaveragefixed -- estimated, then excluded from the denominator0.453 (-0.153 to 0.766)
twowayagreementsinglerandom -- estimated and kept in the denominator0.198 (-0.039 to 0.494)
twowayagreementaveragerandom -- estimated and kept in the denominator0.425 (-0.137 to 0.746)

The lowest is 0.175, the highest 0.453, a gap of 0.278 and a ratio of 2.59. All six are legal, and all six come from the same untouched dataset.

Why six and not eight: the one-way branch never looks at type

The label the package prints collides with a different model

Here are the three naming systems side by side. Each row is one and the same form:

What irr printsShrout-FleissMcGraw-WongEstimate
ICC(1)ICC(1,1)ICC(1)0.175
ICC(3)ICC(1,k)ICC(k)0.389
ICC(C,1)ICC(3,1)ICC(C,1)0.216
ICC(C,3)ICC(3,k)ICC(C,k)0.453
ICC(A,1)ICC(2,1)ICC(A,1)0.198
ICC(A,3)ICC(2,k)ICC(A,k)0.425

So ICC = 0.85 on its own is not a result

When a paper gives one ICC and no model, type or unit, you cannot tell which cell it came from. On this dataset the cells run from 0.175 to 0.453; on data with larger rater differences the span only widens.

The three axes are not academic taste either. Each maps onto a different clinical question.

  • Absolute agreement or consistency: will the measurement be compared against a fixed cut-point, the way a systolic pressure is compared against a hypertension threshold? Then it has to be absolute agreement — a rater who reads systematically two units high moves every patient across the line. If you only need the ranking, consistency is enough.
  • Single or average: will one person read the scan in practice, or will three read it and agree a consensus? Reporting the average form when the clinic uses a single reading inflates the reliability.
  • One-way or two-way: is every subject assessed by the same set of raters (two-way), or by whoever was on duty that day (one-way)?

What each axis does to the denominator

All three numerators are called the between-subject variance, but the one-way one is not the same number as the two-way one: a one-way model has no rater term, so rater differences are absorbed into the within-subject error and its between-subject variance comes out 0.056 smaller. The two two-way forms genuinely share a numerator; there, only the denominator moves.

Two panels. The left panel is one stacked bar splitting the total variance into between-subject (20%), between-rater (8%) and residual (72%). The right panel shows three bars, one per single-measurement form: the one-way bar pools rater and residual into a single grey block, the two-way consistency bar draws the rater block as a dashed empty outline to show it is excluded from the denominator, and the two-way absolute-agreement bar keeps all three blocks. The blue numerator block is the same size in the middle and right bars; in the left bar it is slightly shorter, because the one-way between-subject variance is estimated smaller.
Left: the data admit only one variance split. Right: the two two-way forms share the blue numerator exactly and differ only in the denominator; the one-way bar has a smaller numerator as well.Plotting script figures/scripts/B9-02-icc.R

Start with the variances themselves. The two-way split gives between-subject 0.399, between-rater 0.168 and residual 1.448, which is 19.8%, 8.4% and 71.8% of the total.

The three single-measurement denominators are assembled like this:

FormNumeratorDenominatorWhat is in the denominator
One-way (ICC(1,1))0.3431.960between-subject + within-subject (rater and residual pooled, inseparable)
Two-way consistency (ICC(3,1))0.3991.847between-subject + residual (between-rater removed)
Two-way absolute agreement (ICC(2,1))0.3992.016between-subject + between-rater + residual

Notice that the first row’s numerator, 0.343, is smaller than the 0.399 of the other two, by 0.056. How does the between-subject variance shrink on identical data? Because a one-way layout cannot identify the rater effect, that variance is washed into the error term, and the numerator is pulled down with it. A one-way ICC is not merely a laxer denominator; it is a model that cannot estimate a rater effect.

The average forms do something else: every term in the denominator except the numerator itself is divided by k. More raters, a steadier mean, a higher reliability — by construction, not because the measurement got better.

Do the raters actually differ on this dataset

They do, and the difference reaches statistical significance, if narrowly. The F test of the rater main effect gives F(2, 38) = 3.33 with p = 0.0467. The three rater means are 3.15, 3.15, 2.30 — the first two are identical and the third sits systematically almost a whole point lower.

That point is exactly what a consistency form discards and an absolute-agreement form keeps.

An honest limitation: on this dataset the other axis is doing the work

To make the second axis visible, the script performs a deliberate synthetic manipulation: it adds a constant to every score given by rater 1 and recomputes. That section of the stats file is labelled SYNTHETIC MANIPULATION, not a finding, which is there to stop anyone reading the table as a finding about anxiety ratings.

Constant added to rater 1One-way (ICC(1,1))Two-way consistency (ICC(3,1))Two-way agreement (ICC(2,1))
00.1750.2160.198
10.0580.2160.152
2-0.0900.2160.102
3-0.2080.2160.068

Three things happen at once, and every one of them is algebraically forced.

  1. The consistency column does not move at all. Not nearly — exactly. Consistency forms are invariant to shifting a whole rater by a constant, and the script asserts that with stopifnot() rather than eyeballing it.
  2. The agreement column falls steadily, from 0.198 to 0.068. It counts the offset as disagreement, which is what the offset is.
  3. The one-way column falls fastest and turns negative once the constant reaches 2. A one-way layout has nowhere to put a systematic rater difference except the error term, and that term grows past the between-subject variance.

A high ICC does not mean a precise measurement

A different dataset. data(sbp, package = "MethComp") holds systolic pressures for 85 people, each measured 3 times by each of 3 methods. This page uses the two human observers (J and R), because that is an inter-observer reliability question with no device in it; the human-versus-machine pair belongs to Bland-Altman agreement.

Computed on each person’s mean of three readings, the two-way absolute-agreement single-measure ICC is 0.9991. That is about as good as a number gets.

The same people and the same readings, described the other way round: the differences between the two observers have a mean of 0.09 mmHg and limits of agreement running from -4.34 to 4.52 mmHg, a width of 8.86 mmHg.

So these two observers, measuring the same person on the same occasion, can differ by four or five mmHg, and the ICC for that comparison is 0.9973.

That claim is testable, so the script tests it. It trims the 85 people symmetrically around their median mean pressure, into progressively narrower bands. Neither observer changes and not one reading changes. All that changes is how unlike each other the measured people are.

Central fraction keptPeopleSD of subject means (mmHg)ICC (95% CI)Width of the limits of agreement (mmHg)
100%8530.630.9991 (0.9985 to 0.9994)5.24
50%4411.090.9944 (0.9897 to 0.9969)4.66
30%256.440.9847 (0.9660 to 0.9932)4.45
20%174.090.9609 (0.8972 to 0.9856)4.60

As the spread of the people falls from 30.63 to 4.09 mmHg, the ICC falls from 0.9991 to 0.9609. The limits of agreement go from 5.24 to 4.60 mmHg — a change of 0.64 mmHg, and not even monotone: the width narrows down the first three rows and then turns back up on the narrowest band.

The sentence worth carrying away: an ICC is a property of the measurement and of the population it was estimated in; the limits of agreement are a property of the measurement alone. That is why a published ICC cannot be transported to your cohort and published limits of agreement can — and it is the division of labour between this page and Bland-Altman, which answers the same question in mmHg instead of as a ratio.

When to use kappa and when to use the ICC

The line between this page and kappa and rater agreement is one thing only: whether the outcome is continuous or categorical.

  • Categorical (present or absent, a grade, benign or malignant) goes to the kappa family, which asks how much agreement is left after subtracting what raters would hit by chance.
  • Continuous (a score, a concentration, a length, a blood pressure) goes to the ICC, which asks how much of the total variance is genuinely due to subjects differing.

They are not two options to choose between; the data type chooses. One boundary case is worth remembering. Ordered categories — a five-level pain score, say — support both, and a weighted kappa with quadratic weights and an absolute-agreement ICC give closely related answers. There the choice is about how you intend to describe the result, not about which number looks better.

The division between the ICC and Bland-Altman is not about data type at all. It is about whether you want a ratio or a distance: a reviewer asking whether the two observers agree wants the ICC, a clinician asking whether one observer’s reading can be substituted for the other’s wants limits in mmHg. Reporting both is normal, not redundant.

Run it yourself

library(irr)
data(anxiety, package = "irr")   # 20 subjects x 3 raters, fully crossed

# The six legal forms. Note that `type` does nothing in the oneway branch:
# icc(x, "oneway", "agreement", ...) returns the consistency value, silently.
icc(anxiety, model = "oneway", type = "consistency", unit = "single")
icc(anxiety, model = "twoway", type = "consistency", unit = "single")
icc(anxiety, model = "twoway", type = "agreement",   unit = "single")
icc(anxiety, model = "oneway", type = "consistency", unit = "average")
icc(anxiety, model = "twoway", type = "consistency", unit = "average")
icc(anxiety, model = "twoway", type = "agreement",   unit = "average")

# Do not copy $icc.name into a manuscript. For oneway + average the label is
# paste("ICC(", number_of_raters, ")"), so three raters print ICC(3) -- which
# reads as Shrout-Fleiss ICC(3,1), a two-way consistency form.
icc(anxiety, "oneway", "consistency", "average")$icc.name

# The same thing built by hand. Across the two two-way forms the numerator
# really is one number and only the denominator moves; the oneway call above is
# not one of them -- a one-way layout re-estimates the numerator, and lower.
A  <- as.matrix(anxiety); ns <- nrow(A); nr <- ncol(A)
long <- data.frame(y = as.vector(A),
                   subj = factor(rep(seq_len(ns), nr)),
                   rater = factor(rep(seq_len(nr), each = ns)))
a  <- anova(lm(y ~ subj + rater, data = long))
MSs <- a["subj", "Mean Sq"]; MSr <- a["rater", "Mean Sq"]; MSe <- a["Residuals", "Mean Sq"]

vs <- (MSs - MSe) / nr                      # between subjects
vr <- (MSr - MSe) / ns                      # between raters
ve <- MSe                                   # residual
c(consistency = vs / (vs + ve),             # rater variance excluded
  agreement   = vs / (vs + vr + ve))        # rater variance kept

# The same machinery as the clustered-data page: on a balanced fully crossed
# design REML reproduces the moment estimates above exactly.
lme4::VarCorr(lme4::lmer(y ~ 1 + (1 | subj) + (1 | rater), data = long))

# Second dataset: the ICC is a ratio, the limits of agreement are a distance.
data(sbp, package = "MethComp")
sb <- sbp[sbp$meth %in% c("J", "R"), ]
mJ <- tapply(sb$y[sb$meth == "J"], sb$item[sb$meth == "J"], mean)
mR <- tapply(sb$y[sb$meth == "R"], sb$item[sb$meth == "R"], mean)
M  <- cbind(J = as.numeric(mJ), R = as.numeric(mR))
icc(M, "twoway", "agreement", "single")$value
d <- M[, "J"] - M[, "R"]; mean(d) + c(-1.96, 1.96) * sd(d)   # mmHg, not a ratio

Verified against R 4.6.0 with irr 0.85, MethComp 1.30.2 and lme4 2.0.6. Both datasets are one line away and neither needs an application to any registry.

How to read the report

Work down this list against the paper. If any item is missing, the number cannot be quoted and cannot be compared with anyone else’s.

  1. state the model: one-way, two-way random, or two-way mixed
  2. state the type: consistency or absolute agreement
  3. state the unit: a single measurement or the mean of k, and give k
  4. state how many subjects and how many raters, since the confidence interval is driven by both
  5. report the confidence interval, not the point estimate alone
  6. describe the spread of the subjects, because the ICC rises with it and does not transfer to a narrower population
  7. for a measurement with units, report the limits of agreement alongside the ICC

The last item is the one most often dropped. A unitless ratio cannot answer whether a measurement is precise enough to act on. The blood-pressure section above is the counterexample: an ICC of 0.9973 alongside limits of agreement 8.86 mmHg wide, on the same people and the same readings.

As for the familiar cut-points for what counts as good reliability — they are conventions, not properties. Since six forms of one dataset can differ by a factor of 2.59, any fixed threshold loses its meaning the moment the form is unstated. A threshold is only useful once the form is pinned down.

Common misuses

MisuseWhy it is wrong
Reporting one ICC with no model, type or unitSix forms of one dataset can differ by a factor of 2.59; the reader cannot recover which one you computed
Copying the label the package printsThe irr oneway plus average label is the rater count, which collides with a Shrout-Fleiss model number
Claiming a one-way absolute-agreement ICCA one-way layout does not identify the rater effect, so the combination does not exist — irr silently ignores the type you passed
Reporting the average-of-k ICC when one reader reads in practiceThe average form divides the denominator by k, describing a situation the clinic never faces
Transporting a published ICC to your own cohortThe ICC rises with the spread of the subjects; the same observers in a more homogeneous population will show less
Reading an ICC near one as proof that two measurements are interchangeableIt only says the subjects differ far more than the raters do; interchangeability needs limits in the original units
Clamping a negative ICC at zero before reportingThat turns “cannot see a difference between subjects” into a positive result with a floor under it
Giving the point estimate aloneWith few subjects the intervals are very wide; most of the lower bounds on this page fall below zero
Reading a non-significant F test as raters agreeingThat test asks whether the ICC is zero; not detecting an effect is not absence, and it is certainly not agreement
Using the ICC on a categorical outcomeCategorical data need the kappa family; the ICC numerator has no meaning there

How this page relates to the others

  • The same variance split, put to different use — see clustered and repeated measurements. There the ICC is a nuisance to correct for, here it is the result to report, and the model is the same one.
  • Where reliability comes from — see measurement error. The constant that regression dilution multiplies by is the single-measurement ICC on this page.
  • The categorical version — see kappa and rater agreement.
  • Agreement in the original units — see Bland-Altman agreement: the same blood-pressure data, asked a different way.
  • Where rater reliability sits in a diagnostic study — see the design chapter on diagnostic accuracy. An index test that cannot be read reliably has its accuracy capped by its reliability.
  • The analysis of variance underneath — see t tests and analysis of variance. The three mean squares on this page are that table.

Rerunning every number on this page

/opt/homebrew/bin/Rscript figures/scripts/B9-02-icc.R

Read the figure

The answer comes from the same statistical output that produced this page's figures, not from a number typed in beside them.

On the same data the two-way consistency single-measure form is 0.216 and the two-way absolute-agreement single-measure form is 0.198. What separates them?

Show the answer and why

Correct answer: The between-rater variance is 0.168, and absolute agreement keeps it in the denominator while consistency subtracts it out

The two two-way forms share a numerator exactly, the between-subject variance of 0.399, and differ only in the denominator. Absolute agreement keeps the between-rater 0.168 in it and consistency removes it, so consistency reads higher, 0.216 against 0.198. 0.018 is the gap between the two estimates rather than any variance, and the inference drawn from it is wrong in any case: how far apart the forms fall depends on the rater main effect relative to the residual, and on data where one rater sits systematically two points high the gap opens right up. When the measurement will be compared against a fixed cut-off, only absolute agreement will do; when only the ranking matters, consistency is enough.

The script deliberately adds a constant to every rating from the first rater and recomputes, and the three single-measure forms react differently. After three points are added, which statement is right?

Show the answer and why

Correct answer: Two-way consistency is still 0.216, unchanged, because shifting one whole rater by a constant cannot move it

Consistency forms are exactly invariant to shifting one whole rater by a constant, so after three points the value is still 0.216, and the script asserts it. 0.068 is the absolute-agreement column, which counts the shift as disagreement and slides down, and that is the whole reason absolute agreement exists. The one-way column falls to -0.208: a one-way layout has nowhere to put a systematic rater difference except the error term, which then swells past the between-subject variance. A negative ICC is not an error message. It says the data show no detectable difference between subjects, and it should be reported as it stands rather than clamped at zero.

Two human observers measure systolic blood pressure in the same people. On replicate-linked single readings the two-way absolute-agreement single-measure ICC is 0.9973. Does that make their readings interchangeable?

Show the answer and why

Correct answer: Not necessarily. The limits of agreement on the same readings span 8.86 mmHg, so two observers on one person can be four or five mmHg apart

An ICC is a ratio, and the between-subject variance sits in its denominator. These people differ enormously from one another, with a standard deviation of subject means of 30.63 mmHg, while the standard deviation of the differences between observers is only 2.26 mmHg, so the ratio is bound to sit near one. But that standard deviation is not the most two observers can be apart: multiply it by nearly two to reach the half-width, and the limits on single readings span 8.86 mmHg. As for measurement error being negligible beside the spread of the people, that is exactly why the ICC is high, not evidence of interchangeability. Move the same observers into a more homogeneous population and the ICC falls on its own while the limits do not. A reviewer asking whether two observers agree wants the ratio; a clinician asking whether one reading can stand in for the other wants the distance in mmHg.

The same observers and the same readings, with the cohort trimmed symmetrically around its median blood pressure. The limits of agreement move only from 5.239 to 4.598 mmHg. What happens to the ICC?

Show the answer and why

Correct answer: It falls to 0.961, because a more homogeneous population drags the ICC down on its own

Two things happen at once in that table. The point estimate falls because of the spread: the between-subject variance is the numerator, it shrinks as the cohort narrows, and the measurement error barely moves, so the ICC slides from 0.999 to 0.961. The interval widens because of the sample size, and 0.897 is the lower bound in the narrowest band rather than the point estimate. Topping the counts back up at every step would not stop the point estimate falling. Over the same range the limits of agreement move only from 5.239 to 4.598 mmHg, and not even monotonically. The two observers did not get worse. An ICC is a property of the measurement and of the population it was estimated in; the limits of agreement are a property of the measurement alone.

Running irr with model oneway and unit average prints the label ICC(3). What does a reader take away if that label is copied into a manuscript as it stands?

Show the answer and why

Correct answer: A reader reads the bracketed number as a model number in Shrout-Fleiss notation, while what the output holds is ICC(1,k)

Under model oneway and unit average, irr builds the label out of the number of raters, so three raters print as ICC(3), while what the function computes is ICC(1,k) in Shrout-Fleiss notation. The two notations collide: the first slot inside Shrout-Fleiss brackets is a model number, and the third model is two-way consistency, where the rater effect is estimated as fixed and then taken out of the denominator, whereas a one-way layout has nowhere to put a systematic rater difference and drops the whole of it into the error term. Copying the label across is therefore not a change of name but a claim to a model that was never fitted: the reader assumes systematic rater differences were dealt with when this analysis never estimated them. That the bracketed number is a model number falls apart against the same table, where the package prints ICC(C,1) and ICC(C,3) for the two-way consistency forms, so that slot holds no model number at all. And the damage is not confined to the unit axis: ICC(3,1) and ICC(1,k) do not even share a model, so both axes are wrong. Report the model, the type and the unit in words instead of copying the label a package printed.

There are only 20 subjects here. The one-way single-measure ICC is 0.175, the F test gives p = 0.094, and the lower bound of the interval is negative. How should this be written up?

Show the answer and why

Correct answer: The lower bound of -0.077 sits below zero, so all that can be written is that no difference between subjects was detected

Three separate things. The p value of 0.094 tests whether the ICC is zero, and failing to reach significance supports only no detected difference between subjects, never no difference: 20 subjects were never going to carry much power. The lower bound of -0.077 is negative because the between-subject mean square fell below the residual, which makes the moment estimate of the variance negative. Report it as it stands, since clamping makes 0.175 read like a positive result with a floor under it. And -0.046 is the lower bound of a different form altogether, so switching forms until the number looks better is the same move as trying three weighting schemes and reporting the largest.

Sources and licences

This page is original writing

Report a content problem

The statistics on this site are written by AI and reviewed by AI; a human only spot-checks. What you can see may be what we cannot.

The more specific, the more fixable — e.g. which sentence disagrees with which textbook or paper.

Needed only if you want a reply; reports without it are still read.

Sent along with your report

These are attached automatically. You can drop any of them.