The ROUT method (Motulsky & Brown 2006) identifies outliers from residuals around the median with a Benjamini-Hochberg FDR step-up at a chosen Q, tolerating several outliers at once.
ROUT was designed for non-linear regression residuals from a robust fit, but the same machinery applies to a univariate sample by centring on the median. The key contrast with Grubbs is that ROUT uses the Benjamini-Hochberg step-up to control the false discovery rate across multiple suspected outliers, so masking (where two outliers hide each other from a sequential test) doesn't occur.
RSDR (robust SD) is the 68.27th percentile of the absolute residuals, which equals σ for a standard normal but isn't inflated by outliers. Each observation's residual is divided by RSDR to get a t-like statistic; the sorted p-values are then walked through the BH ladder p₍ₖ₎ ≤ (k/n)·Q, and everything at or below the largest k passing the threshold is flagged.
Q is the FDR — the expected fraction of false flags among all flagged points. Q = 1% gives very conservative flagging (almost no false positives, but real outliers will be missed in heavy-tailed data); Q = 10% flags more freely. Q = 1% is a conservative default and a sensible starting point for clinical / lab data.
One numeric column + Q ∈ {0.001, 0.01, 0.05, 0.1}.
RSDR + list of flagged values + option to remove them in place.
Q is not α: setting Q = 1% means at most 1% of flagged points are expected to be false positives, not that each point has a 1% type-I rate. With Q = 10% and 50 flags you'd expect ~5 to be false alarms.
When ROUT flags more than ~5% of the sample on Q = 1%, the issue is usually distributional (heavy tails, mixture of populations) rather than individual outliers — the right response is a transformation or a robust model, not deletion.