Arte SheetsLearn. Try. Understand.

Statistical & Psychometrics

Passing-Bablok Nonparametric Method-Comparison Regression (Median Slope & Intercept)

Fit outlier-proof clinical laboratory calibration lines via Heinrich Passing & Wolfgang Bablok’s (1983) pairwise slope median b = MEDIAN((Y_j - Y_i) / (X_j - X_i)) and intercept a = MEDIAN(Y_i - b * X_i).

Why a single hemolyzed outlier ruins OLS and Deming—yet barely moves Passing-Bablok!

Both ordinary least squares and Deming regression square residuals, so ONE hemolyzed or clotted patient specimen in a CLSI EP09 clinical analyzer comparison can drag the fitted calibration slope wildly off course! Heinrich Passing and Wolfgang Bablok (Journal of Clinical Chemistry and Clinical Biochemistry, 1983) replaced least squares with the median of all N*(N - 1)/2 pairwise slopes S_ij = (Y_j - Y_i) / (X_j - X_i) (shifted when any S_ij < -1, which equals unshifted MEDIAN(S_ij) whenever all pairwise slopes exceed -1, the universal positive-correlation case in assay validation!) and nonparametric intercept a = MEDIAN(Y_i - b * X_i)!

Watch 5 calibration levels X = [10, 20, 30, 40, 50] vs. candidate assay Y = [11.0, 22.2, 33.1, 44.3, 55.5] (10 pairwise slopes D2:D11): Passing-Bablok yields b = 1.1113 and intercept a = -0.1125. Now corrupt sample 5 from 55.5 to a massive outlier 140.0: whereas OLS slope explodes above 2.9, Passing-Bablok median slope barely shifts from 1.1113 to 1.1200!

Assay Calibration Dataset (N = 5, 10 Pairwise Slopes)Passing-Bablok Slope bPassing-Bablok Intercept aOutlier Breakdown Resistance
Clean Assay [11.0, 22.2, 33.1, 44.3, 55.5]1.1113 (+11.1% prop. bias)-0.1125Zero Gaussian / homoscedastic assumption
Contaminated C6 = 140.0 (2.5× Outlier!)1.1200 (+0.78% shift!)-0.38004/10 affected slopes < 50% median breakdown
Identical X Values (Zero X Spread)"Distinct X Levels Required"Error GuardPrevents ΔX = 0 division

Passing-Bablok Pairwise Median Slope Estimator b

Computes MEDIAN(D2:D11) across all 10 pairwise slopes (Y_j - Y_i) / (X_j - X_i) for calibration pairs B2:C6 (where all S_ij > -1 so offset K = 0).

=IF(MIN(B3 - B2, B4 - B3, B5 - B4, B6 - B5) <= 0, "Distinct Ascending X Levels Required", ROUND(MEDIAN(D2:D11), 4))

Passing-Bablok Nonparametric Median Intercept a = MEDIAN(Y_i - b * X_i)

Evaluates the median residual across the 5 paired specimens using Passing-Bablok slope MEDIAN(D2:D11).

=IF(MIN(B3 - B2, B4 - B3, B5 - B4, B6 - B5) <= 0, "Distinct Ascending X Levels Required", ROUND(MEDIAN(C2 - MEDIAN(D2:D11) * B2, C3 - MEDIAN(D2:D11) * B3, C4 - MEDIAN(D2:D11) * B4, C5 - MEDIAN(D2:D11) * B5, C6 - MEDIAN(D2:D11) * B6), 4))

Try the example

Use the original values or change them to test your understanding.

Further reading