1Load extraction data
Paste extraction.csv from ExtractVahti (or load the file). Columns used: record_id, cutoff, tp, fp, fn, tn, n, opa, kappa_linear. One row per study × cutoff.
2Results — random-effects agreement synthesis
Reads as agreement, not accuracy. Sensitivity/specificity here are agreement against an
imperfect reference (≥2-pathologist consensus shares error with the comparator). Pooling is random-effects
DerSimonian–Laird on the logit scale; κ is descriptive only. This is the browser half — see the R hand-off below for the headline models.
Figures — publication-quality; export PNG at 2× below
3Export
R hand-off (the headline analysis). synthesis.R reads the same
extraction.csv and runs, in R: the bivariate / HSROC model (mada / metadta),
complex random effects, pre-specified sensitivity analyses, and publication-bias methods (Deeks' funnel
asymmetry — the DTA-appropriate test, not the symmetric funnel shown here). It writes sessionInfo() +
an renv note so the analysis is package-versioned and reproducible.