Quantile regression fits a separate line to each part of the outcome distribution, so instead of one slope describing the average it gives the slope at the 10th percentile, the median, the 90th, and anywhere else you ask for. When those slopes agree, least squares was reporting a real quantity. When they do not, the average effect is a number describing nobody — and only fitting the quantiles reveals which case you are in.
When there is no single slope to report
The wage preset has 160 workers, hourly pay, and years of experience. Least squares fits one line and reports 0.6061 per year — a clean, significant, publishable coefficient.
Fitting the quantiles separately gives 0.2361 at the 10th percentile, 0.3153 at the 25th, 0.6006 at the median, 0.8817 at the 75th and 1.0800 at the 90th. These are not five estimates of one number with noise around them. The spread of pay genuinely widens with experience, so an extra year is worth about 24p an hour to someone near the bottom of the pay distribution and about £1.08 to someone near the top.
The least squares figure sits in the middle and describes neither end. It is not wrong as an average — it is a correct answer to a question about the mean, presented in a setting where the mean is a poor summary. Nothing in the least squares output signals that: the coefficient is significant, the standard error is small, and the residual plot is the only hint, which is why so few people catch it.
The second preset is the control. Same design, same sample size, but the spread of pay does not change with experience. Now the quantile slopes run 0.4417 to 0.6298 — a 1.43-fold range rather than 4.57 — and the least squares figure of 0.5454 is a fair summary of all of them. That preset exists so the first is not read as a claim that least squares is always misleading. It is a claim that you cannot tell without looking.
The median fit does not move
Every run takes the observation already furthest above the median fit and pushes it twelve ranges further above, then refits both methods. This is a deliberate construction: the point stays on the side it was already on, and only its distance changes.
Least squares moves by 54.8% on the first preset and 59.2% on the second. Squared error grows with distance, so one observation far from the line can outweigh a hundred near it, and the fit tilts to chase it.
The median fit does not move. Not approximately — the measured shift is 0.0e+0, and it is 0.0e+0 on every one of eighty generated datasets in the verification suite. Absolute deviation grows linearly with distance, so the derivative of the objective with respect to a point’s position is just the sign of its residual. Move a point further away on the same side and the gradient is unchanged, so the solution is unchanged.
That is the precise form of the robustness claim, and it is worth stating precisely because the loose version is false. The median fit is not immune to outliers in general. It is immune to how far away they are. A point that crosses the fit changes the answer, and enough points crossing it will move the median fit as surely as any other.
What a quantile slope actually says
The 90th percentile slope describes how the 90th percentile of the outcome changes as the predictor changes. It does not describe the people who are currently at the 90th percentile, and this distinction does real damage when it is missed.
If a training programme raises the 90th percentile of earnings by £1,000, that does not mean the highest earners each gained £1,000. The programme may have moved different people into the top of the distribution entirely. Quantile regression describes the distribution at each level of the predictor; it does not track individuals between those distributions, and no amount of extra data makes it do so.
That also means the quantile slopes need not be ordered or even monotone. Crossing fits — where the 25th percentile line sits above the 75th at some values of the predictor — are possible, usually at the edges of the data where each fit is estimated from few points. It is a signal to distrust the fit out there rather than a paradox.
Why the fit passes through exactly p points
The table reports how many observations each fit passes through exactly, and the answer is always the number of parameters — two for an intercept and one predictor. That is not a coincidence of these datasets. The objective is piecewise linear, so its minimum sits at a vertex, and a vertex is where enough residuals are pinned to zero to determine the coefficients.
It matters here for a practical reason. An iterative solver only ever approaches such a vertex, so two runs on nearly identical data can land at slightly different coefficients — which would make the outlier comparison above meaningless, since a shift of 1e-3 could be the solver rather than the data. The fit is therefore snapped onto the exact vertex before anything is reported, and the suite confirms it interpolates exactly p observations in 300 of 300 fits.
The other check is the share of observations below each fit, which must track its quantile. The 10th percentile line should have about a tenth of the sample beneath it, and across the suite every fit lands within two observations of that.
Reporting it
Report several quantiles, not one, and report least squares beside them. The information a reader needs is whether the slopes agree: if they do, the least squares coefficient is a real summary and the quantile fits are the evidence for it. If they do not, the range is the finding.
Standard errors for quantile coefficients are usually obtained by bootstrap rather than a closed form, because the asymptotic variance involves the conditional density at the quantile, which is hard to estimate well. This page reports the fitted slopes and the range across them rather than intervals, which is the honest scope of what it computes.
Say plainly that a quantile slope describes the distribution rather than the individuals in it. That single sentence prevents the most common misreading, and it is almost never present.
Sources and methodology
References for the estimator and its computation.
Method. Each quantile fit is obtained by iteratively reweighted least squares on the check function with an annealed weight floor, then snapped onto its exact basic solution — the vertex interpolating exactly p observations, which the suite confirms in 300 of 300 fits. That step is what makes the outlier comparison reproducible: the measured shift in the median slope is exactly zero across eighty generated datasets while the least squares slope moves by 0.10 to 2.18. The suite separately confirms that the median fit beats least squares on absolute deviation and loses to it on squared deviation, that the share of residuals below each fit tracks its quantile to within two observations, and that scaling the outcome scales every quantile slope by the same factor. That engine is verified on every change against 490 assertions. The count and the per-case breakdown are published on the formula verification page.