Tree: ape::rtree(300) ·
Traits: 4 binary per scenario ·
Signal: 0.2 – 1.0 ·
Methods: mode · phylo label propagation · pigauto ·
Replicates: 5 ·
Missingness: 25% MCAR ·
Commit 1ac34b11a9 ·
Run on 2026-05-11 10:56 ·
Total wall: 15.2 min
Bottom line. At high phylogenetic signal (1.0), phylo label propagation achieves 69.6% accuracy and pigauto achieves 66.8%. The calibrated gate often keeps pigauto close to the baseline when the baseline is already strong.
At low signal (0.2), all methods struggle: baseline 58.0%, pigauto 57.9%. With weak phylogenetic structure there is limited information for any method to exploit.
Primary sweep: accuracy by phylogenetic signal (25% missingness)
Average across 4 traits and 5 replicates. ★ marks the best method per scenario.
Phylogenetic label propagation is a strong baseline for binary traits. At high signal, the similarity-weighted average of neighbours is near-optimal. The GNN must earn its gate to add value.
Signal matters more than method. At low signal (0.2) the phylogenetic structure is too weak for any method. At high signal (1.0) even mode imputation does reasonably because the majority class is phylogenetically clustered.
pigauto stays close to label propagation but can trail it. The table should be read by signal level and imbalance setting; the GNN contribution is not uniformly positive in this run.
Reproducibility
Driver: script/bench_binary.R. Tree: ape::rtree(300). Traits: simulate_binary_traits(). Training: 500 epochs with early stopping. To reproduce: Rscript script/bench_binary.R, then Rscript script/make_bench_binary_html.R.