I — Datum

Fleet Comparison with Partial Pooling

A site with two runs cannot be ranked against a site with thirty. Their means carry different standard errors, and a league table built from them ranks sample sizes as much as performance. Partial pooling weights every site estimate by its own precision against the variance between sites, and reports that weight as a number rather than applying it silently.

Ref: James & Stein 1961 · Efron & Morris 1975 · DerSimonian & Laird 1986

II — The Problem

An acquired plant, a newly commissioned line and a supplier trial share a property: few runs, against established sites with many. The raw mean of a two-run site is an estimate with a wide standard error, and placing it in the same column as a thirty-run mean presents the two as equally known.

Seven site samples drawn from one distribution — mean 82, standard deviation 4, no site effect present — illustrate the size of the effect. Six samples of thirty, one of two.

SitenRaw meanPooledWeight on own data95% interval
Plant A3082.3982.170.48481.1 – 83.2
Plant D3083.3882.650.48481.6 – 83.7
Plant B3080.8781.430.48480.4 – 82.5
Newco270.9781.320.05979.8 – 82.8

The two-run sample returned a mean eleven points below the fleet from a distribution identical to the others. Its pooled estimate is 81.32 and its interval covers the fleet mean, which is the correct inference at that sample size. The weight column states that 5.9 percent of the estimate derives from the site's own observations.

III — The Estimator

B_i      = tau² / (tau² + sigma_i²)
pooled_i = B_i × mean_i + (1 − B_i) × fleet_mean

tau² is the between-site variance, estimated by REML from the supplied data. sigma_i² is the squared standard error of that site's own mean, and falls as its run count rises. The coefficient moves continuously with evidence: no threshold is applied and no site is excluded for having too few runs.

IV — What It Reports

Every site returns its own mean, its pooled estimate, the shrinkage coefficient and a confidence interval. The fleet mean, the between-site variance and the source of the prior are reported alongside, so the quantity doing the pulling is visible rather than implicit.

The direction that counts as good is declared per dataset. A yield column and a scrap column shrink identically and rank oppositely, and the estimator does not guess which was supplied.

V — Boundaries

Exchangeability. Sites are treated as draws from a common distribution. Where they differ in known systematic ways — different product mix, equipment generation or specification limits — that assumption fails, and stratification comes before pooling.

Shrinkage decreases with evidence. A site whose low mean persists as its run count rises sees its coefficient climb and its pooled estimate converge on the raw mean. Partial pooling defers a judgment while precision is low; it does not suppress one afterwards.

The prior is observed, not assumed. It is the measured distribution of site effects in the supplied fleet. A caller holding evidence that the fleet is unrepresentative of a given site may supply the between-site variance directly, and the returned prior source records the substitution.

VI — Where It Sits

Fleet comparison is part of the analysis bench and is included in Pro. It holds no state: a fleet is a dataset read a particular way, so there is nothing to configure between visits.

The method is set out at greater length, with the worked example above, in Comparing Sites With Unequal Run Counts →