VOLUME 2, ISSUE 2 · WINTER 2026 · METHODS
The Treatment That Works Because You Picked the Worst Cases
Computational study · Peer-edited by the club review board · LaTeX source · Analysis code · Raw output · Interactive model
Nothing Happened and They Got Better
Here is the entire experiment. Six million simulated people. Each one has a fixed underlying quality, a number that never changes. We measure each of them once, imperfectly. We take the six hundred thousand who scored worst. We do nothing to them. No pill, no training, no attention, no encouragement, no time passing, no illness running its course. In the model, literally nothing happens between the first measurement and the second, and we know this for certain because we wrote the program.
Then we measure them again. They are better by 0.8760 standard deviations.
That is a very large effect. Psychologists and clinicians call anything above 0.8 a large effect size, and it is the sort of number that gets a programme funded. Measured against the spread of the selected group itself, which is the comparison a before-and-after paper usually reports, the gain is 2.13 standard deviations. Nothing produced it. The selection produced it.
The name for this is regression to the mean, and everybody who has taken a statistics course has heard of it. What we wanted was the size. Not the concept, the number: how much of an ordinary-looking improvement can this supply on its own, and under what conditions does it supply all of it?
The answer turns out to depend on two things and nothing else. How extreme a tail you select, and how much of your measurement is noise. Both of those are decisions someone makes, usually early, usually without thinking of them as decisions about the size of their eventual result.
The Model, and What It Leaves Out
The club has no laboratory and no patients. We have a room with computers in it, so our research is computation. Everything below came out of a program we wrote, which runs a mathematical model and knows nothing about people. Nothing here was observed in anybody. When we say measured, we mean measured from our own simulated runs, the way you would measure the frequency of heads by flipping a coin many times rather than by reasoning about coins.
The model is as small as we could make it. Each individual carries a trait \(T\), drawn once from a normal distribution and then fixed forever. Each time we measure them, fresh independent noise is added:
$$X_1 = T + e_1, \qquad X_2 = T + e_2, \qquad e_1, e_2 \sim N(0, \sigma_e^2)$$The noise-to-signal ratio is \(\lambda = \sigma_e / \sigma_T\). The correlation between the two measurements, which in the measurement literature is called test-retest reliability, follows from it:
$$r = \frac{\sigma_T^2}{\sigma_T^2 + \sigma_e^2} = \frac{1}{1 + \lambda^2}$$We fix the variance of a single measurement at 1, so every number in this article is already in units of the population standard deviation on one testing occasion. That is the unit a practitioner sees. Selection takes the bottom fraction \(p\) on \(X_1\). Nothing is applied. We report \(\Delta = \text{mean}(X_2 - X_1)\) over the selected group.
Now the part that matters more than the model. The trait is perfectly stable. There is no natural history, no recovery, no ageing, no learning, no seasonal cycle, no placebo response, no attention effect, no dropout, no floor or ceiling on the scale. Noise is normal, additive, the same size on both occasions, and independent between them. Real second measurements are almost never as pure as this. Anything that genuinely changes between the two occasions adds to \(\Delta\), and our model has no way of separating it out, because in our model there is nothing to separate.
Normality is doing more work than it looks. The shrinkage law we validate against is a property of the bivariate normal, and the truncated-mean factor that sets the size of the effect is a property of the normal tail. A heavy-tailed measurement changes both. We say where in §11.
The Arithmetic
This section contains no simulation. It is the whole result worked by hand, and a reader with a normal table can check every line of it.
Two measurements of the same people, each the same trait plus independent noise, are jointly normal with correlation \(r\). Both have mean 0 and variance 1. For a bivariate normal, the conditional expectation is linear, and with standardised marginals its slope is exactly \(r\):
$$\mathbb{E}[X_2 \mid X_1] = r\,X_1$$Read that slowly. It says the expected second score of anybody is their first score multiplied by \(r\), a number less than one. So whatever group you pick using the first measurement, and by whatever rule, the group's mean on the second measurement is its mean on the first pulled toward the population mean by the factor \(r\). Averaging over any selected set \(S\) chosen from \(X_1\) alone,
$$\mathbb{E}[\bar{X_2} \mid S] = r\,\mathbb{E}[\bar{X_1} \mid S]$$Now choose the rule. Take the bottom fraction \(p\), which cuts at the quantile \(z_p = \Phi^{-1}(p)\). The mean of a standard normal truncated below \(z_p\) is a textbook quantity, \(-\varphi(z_p)/p\). Substituting and subtracting:
$$\Delta = \mathbb{E}[\bar{X_2} - \bar{X_1} \mid S] = (1 - r)\,\frac{\varphi(z_p)}{p}$$Two factors, multiplied. The first, \(1 - r\), is the share of the measurement that is noise. The second, \(\varphi(z_p)/p\), is how far out the tail you went. Work the headline cell:
The two agree to 1.2 standard errors. There is a second way to say the same thing that we found more useful at the club table than the formula. The factor \(1 - r\) is the fraction of the group's distance from the population mean that closes by itself. With \(r = 0.5\), the selected group is 1.755 SDs below average and half of that gap, 0.8775 SDs, evaporates. Not because anything moved. Because half of what put them in the group was noise, and noise does not come back.
Everything else in this article is that one product, evaluated at different places, checked against simulation, and then pointed at study designs.
Working Notes From the Club Table
Meeting 1
Someone asked whether regression to the mean could produce a whole effect on its own
or only shave a bit off one. Nobody at the table knew. Wrote the formula on the
board, plugged in \(p = 0.1\), \(r = 0.5\), got 0.88 SD, and did not believe it.
Meeting 1, later
Wrote the simulation specifically to prove the formula wrong. It did not.
Meeting 2
First version used a fixed cut at \(z_p\) rather than taking the worst \(k\). Argument
about which is right. Both are, for different questions. A trial with an entry
criterion uses a fixed cut. A teacher picking the bottom eight of a class uses order
statistics. Kept the fixed-\(k\) version for the main grid, because with 100,000 per
replicate the two are indistinguishable, and used order statistics in §9 where
the class has 30 people and the difference is visible.
Meeting 2
Standard errors were coming out of a formula. Replaced them with the spread across
60 independent replicates. Slower, honest, and it immediately showed that our first
error bars had been too small.
Meeting 3
Two cells sitting past 3 standard errors on a 25-replicate run. Spent a meeting
hunting a bug. There was no bug: with 25 replicates the standard error is itself
estimated from 24 degrees of freedom, and a \(t\) with 24 df has fat tails. Raised
the replicate count to 60 and the same cells came back inside 2.2. Wrote down a
re-run rule before looking at anything: any cell past \(|z| = 3\) gets simulated
again from a fresh stream. In the final run no cell was flagged.
Meeting 3
Found a genuine error in our own code while writing §5. The analytic variance of
the truncated group had a sign wrong, so the printed prediction was clamped to zero
while the simulation happily reported 0.4120. The simulation caught the algebra,
which is the opposite of the usual direction and worth recording.
Meeting 4
Discovered that the top of the class regresses downward by the same amount, and that
this is the more uncomfortable half. Added it to §9.
Meeting 4
Argument about the article's title. Somebody objected that it sounds like an
accusation. It is one.
What the Cut Does to a Population
Figure 1 is one cell drawn out. Six hundred individuals from the headline run, first measurement against second, with the bottom tenth shaded.
The figure is worth staring at, because it shows why the effect is not a trick of arithmetic but a consequence of cutting. The cloud of points is symmetric about the diagonal. Nobody is systematically improving. But the vertical strip we selected was chosen by its \(X_1\) coordinate, and within that strip the \(X_2\) values are drawn from the whole conditional distribution, which is centred at \(0.5 X_1\) rather than at \(X_1\). The dots in the strip sit, on average, above the dashed line. They were always going to.
Put the other way round: to be in the bottom tenth on a noisy measurement you need either a genuinely low trait or an unlucky day, and most people who qualify had some of both. The trait stays. The unlucky day does not.
The Grid
Six selection thresholds by seven noise ratios. Forty-two cells, six million simulated individuals each, 252 million in the grid. Each cell is 60 independent replicates of 100,000 people, and the standard error is the spread across those 60 runs rather than a formula we assumed.
Read the figure as a menu of design choices. A study that enrols the worst quarter on a measurement with reliability 0.8 buys itself 0.254 SD before anything happens. Move to the worst 1% on the same instrument and it is 0.530. Keep the worst quarter but use an instrument with reliability 0.31 and it is 0.880. None of those three studies has done anything wrong. None of them has done anything at all.
| p | λ | r | Δ simulated | SE | Δ closed form | difference | z |
|---|---|---|---|---|---|---|---|
| bottom 50% selected on the first measurement | |||||||
| 0.50 | 0.00 | 1.0000 | 0.00000 | 0.00000 | 0.00000 | +0.00000 | exact |
| 0.50 | 0.25 | 0.9412 | 0.04702 | 0.00020 | 0.04693 | +0.00009 | +0.45 |
| 0.50 | 0.50 | 0.8000 | 0.15973 | 0.00031 | 0.15958 | +0.00015 | +0.48 |
| 0.50 | 0.75 | 0.6400 | 0.28784 | 0.00040 | 0.28724 | +0.00060 | +1.50 |
| 0.50 | 1.00 | 0.5000 | 0.39856 | 0.00056 | 0.39894 | -0.00038 | -0.68 |
| 0.50 | 1.50 | 0.3077 | 0.55367 | 0.00069 | 0.55238 | +0.00129 | +1.87 |
| 0.50 | 2.00 | 0.2000 | 0.63708 | 0.00057 | 0.63831 | -0.00123 | -2.16 |
| bottom 25% selected on the first measurement | |||||||
| 0.25 | 0.00 | 1.0000 | 0.00000 | 0.00000 | 0.00000 | +0.00000 | exact |
| 0.25 | 0.25 | 0.9412 | 0.07468 | 0.00021 | 0.07477 | -0.00009 | -0.43 |
| 0.25 | 0.50 | 0.8000 | 0.25429 | 0.00057 | 0.25422 | +0.00007 | +0.12 |
| 0.25 | 0.75 | 0.6400 | 0.45813 | 0.00064 | 0.45760 | +0.00053 | +0.83 |
| 0.25 | 1.00 | 0.5000 | 0.63465 | 0.00075 | 0.63555 | -0.00090 | -1.20 |
| 0.25 | 1.50 | 0.3077 | 0.87954 | 0.00090 | 0.88000 | -0.00046 | -0.51 |
| 0.25 | 2.00 | 0.2000 | 1.01714 | 0.00101 | 1.01689 | +0.00025 | +0.25 |
| bottom 10% selected on the first measurement | |||||||
| 0.10 | 0.00 | 1.0000 | 0.00000 | 0.00000 | 0.00000 | +0.00000 | exact |
| 0.10 | 0.25 | 0.9412 | 0.10369 | 0.00043 | 0.10323 | +0.00046 | +1.07 |
| 0.10 | 0.50 | 0.8000 | 0.34999 | 0.00075 | 0.35100 | -0.00101 | -1.35 |
| 0.10 | 0.75 | 0.6400 | 0.63285 | 0.00100 | 0.63179 | +0.00106 | +1.06 |
| 0.10 | 1.00 | 0.5000 | 0.87598 | 0.00131 | 0.87749 | -0.00151 | -1.15 |
| 0.10 | 1.50 | 0.3077 | 1.21506 | 0.00138 | 1.21499 | +0.00007 | +0.05 |
| 0.10 | 2.00 | 0.2000 | 1.40228 | 0.00132 | 1.40399 | -0.00171 | -1.30 |
| bottom 5% selected on the first measurement | |||||||
| 0.05 | 0.00 | 1.0000 | 0.00000 | 0.00000 | 0.00000 | +0.00000 | exact |
| 0.05 | 0.25 | 0.9412 | 0.12077 | 0.00054 | 0.12134 | -0.00057 | -1.06 |
| 0.05 | 0.50 | 0.8000 | 0.41337 | 0.00109 | 0.41254 | +0.00083 | +0.76 |
| 0.05 | 0.75 | 0.6400 | 0.74131 | 0.00185 | 0.74258 | -0.00127 | -0.69 |
| 0.05 | 1.00 | 0.5000 | 1.03310 | 0.00183 | 1.03136 | +0.00174 | +0.95 |
| 0.05 | 1.50 | 0.3077 | 1.42995 | 0.00187 | 1.42803 | +0.00192 | +1.03 |
| 0.05 | 2.00 | 0.2000 | 1.64836 | 0.00194 | 1.65017 | -0.00181 | -0.93 |
| bottom 2% selected on the first measurement | |||||||
| 0.02 | 0.00 | 1.0000 | 0.00000 | 0.00000 | 0.00000 | +0.00000 | exact |
| 0.02 | 0.25 | 0.9412 | 0.14335 | 0.00086 | 0.14241 | +0.00094 | +1.09 |
| 0.02 | 0.50 | 0.8000 | 0.48426 | 0.00158 | 0.48418 | +0.00008 | +0.05 |
| 0.02 | 0.75 | 0.6400 | 0.87188 | 0.00221 | 0.87153 | +0.00035 | +0.16 |
| 0.02 | 1.00 | 0.5000 | 1.20770 | 0.00255 | 1.21045 | -0.00275 | -1.08 |
| 0.02 | 1.50 | 0.3077 | 1.67413 | 0.00279 | 1.67601 | -0.00188 | -0.67 |
| 0.02 | 2.00 | 0.2000 | 1.93955 | 0.00303 | 1.93673 | +0.00282 | +0.93 |
| bottom 1% selected on the first measurement | |||||||
| 0.01 | 0.00 | 1.0000 | 0.00000 | 0.00000 | 0.00000 | +0.00000 | exact |
| 0.01 | 0.25 | 0.9412 | 0.15874 | 0.00166 | 0.15678 | +0.00196 | +1.18 |
| 0.01 | 0.50 | 0.8000 | 0.53000 | 0.00280 | 0.53304 | -0.00304 | -1.09 |
| 0.01 | 0.75 | 0.6400 | 0.95978 | 0.00356 | 0.95948 | +0.00030 | +0.08 |
| 0.01 | 1.00 | 0.5000 | 1.33044 | 0.00402 | 1.33261 | -0.00217 | -0.54 |
| 0.01 | 1.50 | 0.3077 | 1.85265 | 0.00414 | 1.84515 | +0.00750 | +1.81 |
| 0.01 | 2.00 | 0.2000 | 2.13499 | 0.00418 | 2.13217 | +0.00282 | +0.67 |
The bolded row is the headline cell. The \(\lambda = 0\) row inside each block is the control, and it is worth dwelling on: the simulated apparent gain there is not small, it is exactly zero, printed to ten decimal places, because with no noise the second measurement is the same floating-point number as the first for every individual. That row is the one place in the study where the answer is certain rather than estimated, and it is how we know the selection machinery is not manufacturing a gain by itself.
Checking It Against the Closed Form
A simulation that agrees with the formula it was written from proves nothing about the world. It proves the code implements the model. That is still worth establishing, and it is the only thing in this article that can be established with certainty, so here is how we did it.
The validation target is the shrinkage law rather than \(\Delta\) itself, because the law is the sharper statement. It says the selected group's mean on the second measurement, divided by its mean on the first, should equal \(r\) exactly, for every threshold and every noise level, and it should not care which threshold at all. So the ratio is a single number the simulation must hit 42 times from 42 different directions.
Three things had to hold, and we fixed what would count as a failure before running anything. First, no cell past the Bonferroni threshold. None was. Second, the pooled sum of squared \(z\) scores close to its degrees of freedom rather than above it, since a systematic bias too small to show in any single cell would still inflate the sum; 36.20 on 36 df is as close as one could reasonably ask. Third, the zero-noise control at \(r = 1\) returning exactly zero rather than something small, which it did at all six thresholds.
The randomised design gave us a fourth check for free. Across the 18 trial cells its estimate of the true treatment effect was never more than 1.77 standard errors from the truth, which is what an unbiased estimator looks like when you run it eighteen times.
Watching the number settle
Monte Carlo answers arrive slowly and from the wrong direction first. Figure 4 is the running estimate of the headline number as the selected individuals accumulate, from the first ten thousand to the last of six hundred thousand.
The trace is a useful thing for a club to look at, because it shows what a small run would have told us. Ten thousand selected people, which is more than most real studies have, gave 0.8518. That is a perfectly respectable answer and it is wrong in the second decimal place. The envelope tells you which digits to trust, and the honest way to report a Monte Carlo number is to report the digits inside it and no more.
Two Designs, the Same Simulated Patients
So far there has been no treatment. Now add one. A true effect \(\tau\), a constant shift in standard deviations, applied to the second measurement of anyone treated. Then run two designs on the same simulated people.
The single-arm design treats everybody who was selected and reports the mean change from before to after. The randomised design splits the selected group in half at random, treats one half, and reports the difference between the two halves on the second measurement. Both start from the same 600,000 selected individuals. Both have the same regression to the mean acting on them. One reports it as a treatment effect.
The left panel contains the entire argument of this article in one shape. The single-arm curves are parallel to the truth, sitting above it by a fixed amount. That fixed amount is \((1-r)\varphi(z_p)/p\), the same product from §3. The randomised points sit on the truth. Not approximately: across 18 cells the largest departure was 1.77 standard errors.
The right panel is where it bites. Because the bias is a constant and the true effect is not, the overstatement factor is worst exactly where the stakes are highest, which is for small real effects. In the headline scenario a true effect of 0.20 SD is reported as 1.077, an inflation of 5.38 times, with 81.5% of the reported result supplied by the selection. A true effect of 0.10 SD is inflated 9.77 times. A true effect of zero is reported as 0.877, and reaches \(p < 0.05\) in 100% of replicates.
That last number deserves its own sentence. A before-and-after design applied to a selected group does not have a 5% false-positive rate. On these settings it has a 100% false-positive rate, because the thing it is testing is not zero. The test is working perfectly. It is answering a question nobody meant to ask.
The difference-in-differences form of the randomised estimate, which compares change scores between arms rather than final values, was unbiased too, and in these cells was slightly noisier. Vickers and Altman set out when each is preferable [11]. The point for our purposes is that randomisation, and not the choice of summary, is what removes the bias: both arms regress by the same amount and the comparison subtracts it away.
Our Own Homework
We should say where this touches us, because it does.
The club runs sessions where members work through problems and then try the same kind of problem again later. If we picked out the members who did worst the first time, gave them help, and looked at how they did the second time, we would see them improve. We would then be tempted to conclude that our help worked.
We do not have paired quiz data. The club never collected any, and we are not going to pretend otherwise in an article about not fooling yourself. What we can do is run the model at class scale and see what it predicts. A class of 30, a short quiz with test-retest reliability 0.70, the bottom eight picked out, and an intervention that in the model does exactly nothing. Two hundred thousand simulated classes.
On a hundred-point scale with a mean of 68 and a standard deviation of 12, which is an ordinary-looking classroom spread, that is the bottom eight rising from 53.7 to 58.0 marks. Four point three marks. In 91.4% of simulated classes they improve. A teacher running this once, in one class, would see it work.
The second column is the one that changed how we think about it. Leave the top eight entirely alone and they fall by 4.29 marks, and they fall in 91.3% of classes. Same arithmetic, same size, opposite sign. Nobody writes an article about how doing nothing to the best students made them worse, but the model produces both halves from the same line of algebra, and if you believe the first you have already committed to the second. Meanwhile the class as a whole moved by 0.0007 standard deviations, which is to say it did not move.
Kahneman and Tversky made this point in 1973 with flight instructors who had noticed that praising a good landing was followed by a worse one and criticising a bad landing by a better one, and had drawn the obvious and wrong conclusion about praise [4]. Our class of 30 is the same shape. Any teacher, coach or manager who intervenes on the worst and then measures again is running this experiment, usually without a control group, always with a result.
The Strongest Objection We Could Make
The objection runs like this, and we think it is largely right.
Everything above compares two pieces of mathematics. The shrinkage law is a property of the bivariate normal, proved in the nineteenth century. We simulated a bivariate normal. It shrank. A student with a normal table could have written down every number in our grid table to within the error bars before we ran anything. That \(\sum z^2\) came out at 36.20 on 36 degrees of freedom tells you about numpy's normal sampler and about our indexing. It tells you nothing about clinical trials or classrooms.
We accept that. Three things survive it.
The first is that the objection applies to the validation, which is where it belongs, and we labelled the validation as a code check rather than dressing it as a finding. Its value is in what it would have caught. It did catch something, as it happens: the sign error in §4's notes was found because the printed prediction disagreed with the simulation.
The second is that the size is not obvious even when the mechanism is. Every member of the club knew what regression to the mean was before we started. Not one of us guessed 0.88 SD. The usual textbook presentation, including the two excellent BMJ notes by Bland and Altman [7][8], teaches the phenomenon with a small illustrative example and leaves the magnitude as an exercise. The product \((1-r)\varphi(z_p)/p\) is not hard, and it is also not something people carry around. Putting a number on it, across the range of thresholds and reliabilities that real studies actually use, is a modest contribution and it is ours.
The third is the comparison in §11 against a published figure, which we could not have written down in advance and which does say something about the literature rather than about our code.
A second objection is harder on us. Our model has no natural history. Real patients get better on their own; real students learn; real measurements drift. Krogsbøll and colleagues pooled 37 three-armed trials and found a standardised change from baseline of \(-0.24\) in the arms that received no treatment whatsoever [15], and that number contains real recovery as well as regression. We cannot separate them, and we do not claim to. What our model establishes is the arithmetic ceiling: how much of such a figure regression could supply by itself. Whether it did, in any particular trial, depends on that trial's entry rule and its instrument's reliability, which is exactly the pair of numbers that trial reports least often.
A third objection we have no answer to at all. Reliability \(r\) is handed to our model as a known constant. In practice it has to be estimated, often from the same small sample, and every correction for regression to the mean is only as good as that estimate [8][14]. Barnett and colleagues set out the correction properly [14]. We measured the disease. We did not measure the cure.
What This Does and Does Not Tell You
The finding is a product of two numbers, and both of them are chosen by whoever designs the study.
How extreme a group you select sets \(\varphi(z_p)/p\), which runs from 0.80 at the median to 2.67 at the worst percentile. How noisy your instrument is sets \(1 - r\). Multiply them and you have the improvement your study will report if the treatment does nothing. If that number is larger than the effect you are hoping to detect, a single-arm before-and-after design cannot tell you anything, however many participants you enrol, because more participants shrink the error bar around a biased estimate rather than the bias.
Our comparison against the literature works out as follows. The pooled change from baseline in the untreated arms of those 37 trials was \(-0.24\) [15]. If such a trial enrols the worst tenth on a single entry measurement, regression alone accounts for the whole of that figure as soon as the entry measurement's reliability is 0.863 or below. At the worst 1%, reliability 0.910 suffices. At a looser entry criterion of the worst half, reliability would have to fall to 0.699. Single-occasion clinical and behavioural measurements are routinely less reliable than 0.86, which is why blood pressure epidemiology developed an entire correction industry around the problem [6][9]. So the published \(-0.24\) puts no floor under how much of it is genuine recovery. It is consistent with all of it being selection, and consistent with none of it being selection, and a single-arm design has no way to tell. Note which direction the tight entry criterion pushes: the stricter your enrolment, the larger your artefact. A design choice made to sharpen a study makes its uncontrolled version less interpretable.
What the study says nothing about: any particular trial, any particular instrument, any real patient or student, whether a given published effect is real, or how to estimate \(r\) for anything. We did not look at a real dataset. We looked at a formula, hard.
Two practical readings we would defend. A before-and-after improvement in a group chosen for being extreme is not evidence of anything until somebody names \(p\) and \(r\); those two numbers, and a normal table, produce the null expectation in a line. And the fix is old and cheap. Randomise within the selected group and the bias cancels exactly, because both arms regress by the same amount, which is what Figure 5's open markers are showing. Yudkin and Stratton [10], Morton and Torgerson [13] and Barnett and colleagues [14] all say versions of this, and the field has known it since Davis in 1976 [5] and arguably since Hotelling told Secrist in 1933 that his long study of the decline of exceptional businesses had demonstrated nothing except that the data were correlated below unity [2][10]. The knowledge is not new. What we hope is new here is the size, printed where a reader can check it.
Where a different choice would change the answer
Normal against heavy-tailed. Of everything we assumed, this one moves the answer most. The factor \(\varphi(z_p)/p\) is a normal-tail quantity. Give the noise a heavier tail and the selected group is further out, the shrinkage law \(\mathbb{E}[X_2|X_1] = rX_1\) stops holding exactly because linear conditional expectation is a bivariate normal property, and the size of the artefact changes in a direction that depends on which distribution you pick. We did not vary it. Read every number in this article as conditional on normality, and expect a real noisy measurement with occasional wild readings to behave worse, not better.
A stable trait against a drifting one. We froze \(T\) between measurements. If the trait itself wanders, the correlation between occasions falls with the gap between them, so \(r\) becomes a function of elapsed time and the artefact grows with follow-up length. That is the regression dilution problem in its usual form, and it is why blood pressure epidemiology corrects associations for the attenuation caused by single baseline readings [6][9]. Our constant-\(r\) result is the baseline that departure starts from.
A fixed cut against order statistics. Section 9 shows the size of this: at \(n = 30\) the two differ by 0.010 SD, about 3%. At the sample sizes in the main grid they are indistinguishable. Anyone applying our numbers to a group of ten or twenty should use the order-statistic version, which is the one the interactive model runs.
Selection on one measurement against selection on an average of several. This is the cheapest fix available and we did not include it in the grid. Average \(m\) independent screening measurements before selecting and the effective reliability rises to \(mr/(1 + (m-1)r)\). At \(r = 0.5\), two screening visits take the effective reliability to 0.667 and cut the artefact by a third; three take it to 0.75 and halve it. A trial that screens twice before enrolling has already disposed of a third of its regression bias, and this is a design change, not an analysis one.
A constant treatment effect against one that varies with the trait. We added the same \(\tau\) to everybody. If the treatment helps the worst-off more, the single-arm estimate and the randomised estimate both change, and they change differently, which is the territory of Lord's paradox [3] and of the long argument about change scores [12]. Our clean separation between bias and effect depends on the effect being additive, and that is an assumption rather than a result.
Reproducing this
Everything in this article comes from one file and one command. You need Python 3.12 and numpy. No other package is used.
python regression-to-the-mean.py > regression-to-the-mean-output.txt
Expect about 40 seconds on a modern laptop. Ours took 36.0 s on numpy 2.4.2 and Python
3.12.3. The master seed is 20260211, hard-coded at the top of the file, and every grid
cell, trial cell and auxiliary run draws its own independent stream from it through
numpy's SeedSequence.spawn, so the whole output is deterministic and the
order of the cells does not affect any of them. Peak memory is modest, set by the class
simulation's 200,000 by 30 arrays. Numbers differing from ours by more than the printed
standard errors mean something is wrong, and we would like to hear about it. The
interactive model runs a
smaller version of the same two experiments in your browser, with the selection
threshold on a slider.
References
- Galton, F. (1886). Regression towards mediocrity in hereditary stature. The Journal of the Anthropological Institute of Great Britain and Ireland 15, 246–263. doi:10.2307/2841583
- Hotelling, H. (1933). Review of The Triumph of Mediocrity in Business by Horace Secrist. Journal of the American Statistical Association 28, 463–465. doi:10.2307/2278144
- Lord, F. M. (1967). A paradox in the interpretation of group comparisons. Psychological Bulletin 68, 304–305. doi:10.1037/h0025105
- Kahneman, D. & Tversky, A. (1973). On the psychology of prediction. Psychological Review 80, 237–251. doi:10.1037/h0034747
- Davis, C. E. (1976). The effect of regression to the mean in epidemiologic and clinical studies. American Journal of Epidemiology 104, 493–498. doi:10.1093/oxfordjournals.aje.a112321
- MacMahon, S., Peto, R., Cutler, J., Collins, R., Sorlie, P., Neaton, J., Abbott, R., Godwin, J., Dyer, A. & Stamler, J. (1990). Blood pressure, stroke, and coronary heart disease. Part 1, prolonged differences in blood pressure: prospective observational studies corrected for the regression dilution bias. The Lancet 335, 765–774. doi:10.1016/0140-6736(90)90878-9
- Bland, J. M. & Altman, D. G. (1994). Statistics notes: regression towards the mean. BMJ 308, 1499. doi:10.1136/bmj.308.6942.1499
- Bland, J. M. & Altman, D. G. (1994). Statistics notes: some examples of regression towards the mean. BMJ 309, 780. doi:10.1136/bmj.309.6957.780
- Yudkin, P. L. & Stratton, I. M. (1996). How to deal with regression to the mean in intervention studies. The Lancet 347, 241–243. doi:10.1016/S0140-6736(96)90410-9
- Stigler, S. M. (1997). Regression towards the mean, historically considered. Statistical Methods in Medical Research 6, 103–114. doi:10.1177/096228029700600202
- Vickers, A. J. & Altman, D. G. (2001). Analysing controlled trials with baseline and follow up measurements. BMJ 323, 1123–1124. doi:10.1136/bmj.323.7321.1123
- Hróbjartsson, A. & Gøtzsche, P. C. (2001). Is the placebo powerless? An analysis of clinical trials comparing placebo with no treatment. New England Journal of Medicine 344, 1594–1602. doi:10.1056/NEJM200105243442106
- Morton, V. & Torgerson, D. J. (2003). Effect of regression to the mean on decision making in health care. BMJ 326, 1083–1084. doi:10.1136/bmj.326.7398.1083
- Barnett, A. G., van der Pols, J. C. & Dobson, A. J. (2005). Regression to the mean: what it is and how to deal with it. International Journal of Epidemiology 34, 215–220. doi:10.1093/ije/dyh299
- Krogsbøll, L. T., Hróbjartsson, A. & Gøtzsche, P. C. (2009). Spontaneous improvement in randomised clinical trials: meta-analysis of three-armed trials comparing no treatment, placebo and active intervention. BMC Medical Research Methodology 9, 1. doi:10.1186/1471-2288-9-1
- Senn, S. (2011). Francis Galton and regression to the mean. Significance 8, 124–126. doi:10.1111/j.1740-9713.2011.00509.x