- Calculating the average performance of each model on the test set?
- Performing a paired statistical test on per-example performance differences?
- Comparing the best performance each model achieves on any single example?
- Measuring how quickly each model was trained?
- It compares models on the same examples, controlling for example-level difficulty and increasing statistical power.
- It preserves per-example variance instead of averaging it away, which helps detect consistent differences rather than extreme outliers.
- It yields a formal probability (p-value) and can be paired with effect-size and confidence-interval estimates to quantify practical significance.
Practical checklist for a rigorous comparison
- Define the evaluation metric at the example level (e.g., correct/incorrect, per-example score).
- Evaluate both models on the exact same test examples to enable paired comparisons.
- Compute per-example differences:
diff_i = score_A(i) - score_B(i). - Inspect the differences for distributional assumptions (histogram, Q-Q plot).
- Select the appropriate paired test (see table).
- Report: test statistic, p-value, effect size (e.g., Cohen’s d or median difference), and confidence interval.
- If you run multiple hypotheses (e.g., many tasks or metrics), correct for multiple comparisons (Bonferroni, Holm, or false discovery rate methods).
- Share code and the example-level results so others can reproduce the test.
Always report both statistical significance and effect size. A small p-value can be meaningless if the effect is tiny; conversely, a large effect with insufficient sample size can be inconclusive without a confidence interval.

- Simple averages: Ignore per-example variance and may mask consistent but small differences across many examples.
- Best-case single-example performance: Extremely sensitive to outliers and not representative of overall behavior.
- Training speed: Relevant for engineering trade-offs but unrelated to held-out evaluation performance on the target task.
Avoid unpaired comparisons or using only aggregate metrics for hypothesis testing. Always pair examples between models, check test assumptions, and guard against data leakage and multiple comparisons.
- Paired t-test: https://en.wikipedia.org/wiki/Paired_t-test
- Wilcoxon signed-rank test: https://en.wikipedia.org/wiki/Wilcoxon_signed-rank_test
- McNemar’s test: https://en.wikipedia.org/wiki/McNemar%27s_test
- Permutation tests and bootstrap methods: https://en.wikipedia.org/wiki/Permutation_test