Statistical Analysis
Rogan-Gladen True Prevalence Estimator Correcting False Positives & Negatives
Recover true population prevalence from apparent screening-test positivity via Rogan and Gladen’s (1978) identity (p_app + Spec - 1) / (Sens + Spec - 1) with [0, 1] boundary clamping.
Why apparent positivity p_app severely overstates low-prevalence rates under <100% specificity
In seroprevalence surveys, content-moderation audits, and manufacturing defect sampling, an imperfect classifier with Sensitivity Se and Specificity Sp produces apparent positive rate p_app = p_true * Se + (1 - p_true) * (1 - Sp). Even if true prevalence is 0%, the screen still reports 1 - Sp false positives (for example, 5.0% apparent positives at 95% specificity!).
Walter Rogan and Beth Gladen (1978) inverted that law of total probability directly: p_true = (p_app + Sp - 1) / (Se + Sp - 1), provided Se + Sp > 1 (Youden’s J > 0). Because finite sampling noise can occasionally yield p_app < 1 - Sp or p_app > Se, clamping the estimator onto [0, 1] via MIN(1, MAX(0, ...)) guarantees valid probability bounds.
| Survey Scenario (Se=90%, Sp=95%) | Apparent Positive p_app | Unclamped Rogan-Gladen | Clamped True Prevalence |
|---|---|---|---|
| Moderate Outbreak | 0.1800 (18.00%) | 0.1529 | 0.1529 (15.29%) |
| At False-Positive Floor | 0.0500 (5.00%) | 0.0000 | 0.0000 (0.00%) |
| Below FP Floor (Sample Noise) | 0.0300 (3.00%) | -0.0235 | 0.0000 (Clamped to 0) |
Clamped Rogan-Gladen True Prevalence Formula
Guard Se + Sp <= 1 ("UNINFORMATIVE_TEST"), compute (p_app + Sp - 1) / (Se + Sp - 1), and clamp to [0, 1] with MIN and MAX.
=IF(B3 + B4 <= 1, "UNINFORMATIVE_TEST", ROUND(MIN(1, MAX(0, (B2 + B4 - 1) / (B3 + B4 - 1))), 4))Apparent-Minus-True Bias Diagnostic
Subtract Rogan-Gladen true prevalence from raw apparent positivity B2 - E3 to quantify net false-positive overestimation (or false-negative underestimation at very high prevalence).
=ROUND(B2 - E3, 4)Try the example
Use the original values or change them to test your understanding.