Statistical & Clinical Analysis
Deeks’ Funnel Plot Asymmetry Test: Diagnostic Meta-Analysis Effective Sample Size (ESS)
Avoid spurious Egger false positives in Diagnostic Test Accuracy (DTA) meta-analyses by computing Deeks’ Effective Sample Size ESS = (4*n_1*n_2)/(n_1 + n_2) and regressing ln(DOR) on 1/SQRT(ESS).
Why Cochrane DTA Guidelines forbid Egger’s SE test on Diagnostic Odds Ratios—and mandate Deeks’ 1/√ESS!
In Diagnostic Test Accuracy (DTA) meta-analyses (where Diagnostic Odds Ratio DOR = (TP*TN)/(FP*FN) typically ranges from 10 to 100!), ln(DOR) and its standard error SE = SQRT(1/TP + 1/FP + 1/FN + 1/TN) are mathematically correlated even when zero publication bias exists—causing Egger’s test to trigger rampant false-positive bias alarms! Jonathan J. Deeks, Petra Macaskill, and Les Irwig (2005, Journal of Clinical Epidemiology) solved this by replacing SE with the inverse root of Effective Sample Size: ESS = (4 * n_1 * n_2) / (n_1 + n_2), where n_1 = diseased cases and n_2 = non-diseased controls!
Notice that when n_1 = n_2 = N/2, ESS equals total N; when prevalence is 1:3 (e.g., n_1 = 25 cases, n_2 = 75 controls), ESS = 75.00 (< 100, penalizing unbalanced designs!). Regressing ln(DOR) D2:D6 against 1/SQRT(ESS) F2:F6 across 5 imaging accuracy studies yields Deeks asymmetry slope β_1 = +16.95 (vs. 0.00 when ln(DOR) is constant across sample sizes)!
| DTA Meta-Analysis Scenario (5 Studies) | Study 1 ESS (25 Cases / 75 Controls) | Deeks Asymmetry Slope on 1/√ESS | Cochrane DTA Bias Assessment |
|---|---|---|---|
| Small Studies Inflated (ln DOR 3.40 -> 2.20) | 75.00 (vs Raw N = 100) | +16.95 | Positive Small-Study DTA Asymmetry |
| Constant Accuracy Across Sizes (All ln DOR = 2.50) | 75.00 | 0.00 | Symmetric DTA Funnel |
| Zero Diseased or Non-Diseased Arm (n_1 or n_2 <= 0) | Undefined ESS | "Arm Sample Sizes Must Be Positive" | Two-Gate Study Guard |
Deeks Funnel-Asymmetry Regression Slope of ln(DOR) on 1 / SQRT(ESS)
Computes the regression slope of study log Diagnostic Odds Ratio D2:D6 against inverse root Effective Sample Size F2:F6.
=IF(OR(MIN(B2:B6) <= 0, MIN(C2:C6) <= 0), "Arm Sample Sizes Must Be Positive", ROUND(SLOPE(D2:D6, F2:F6), 2))Deeks Effective Sample Size ESS_1 = (4 * n_1 * n_2) / (n_1 + n_2)
Evaluates prevalence-penalized effective sample size for Study 1 (B2 diseased, C2 non-diseased).
=IF(OR(B2 <= 0, C2 <= 0), "Arm Sample Sizes Must Be Positive", ROUND(E2, 2))Try the example
Use the original values or change them to test your understanding.