Analysis

moabbr.nma(results: DataFrame, greater_is_better: bool = True) dict

Run a frequentist random-effects network meta-analysis on MOABB evaluation results.

Parameters:

  • results: MOABB evaluation DataFrame with columns dataset, pipeline, subject, score.

  • greater_is_better: If True, higher scores rank better (e.g. accuracy). If False, lower scores rank better (e.g. error rate).

Each dataset is treated as an independent study and each pipeline as a treatment. Pairwise mean differences are computed per subject, then aggregated per dataset.

Returns a dict with:

  • ranking: P-score per pipeline (0-1, higher = better rank).

  • league: Pairwise md, lower, upper, z, pval - each a pipeline x pipeline matrix.

  • heterogeneity: tau2, tau, i2, i2_lower, i2_upper, q, q_df, q_pval.

  • prediction: Prediction interval lower and upper - each a pipeline x pipeline matrix.

moabbr.bnma(results: DataFrame, greater_is_better: bool = True) dict

Run a Bayesian random-effects network meta-analysis on MOABB evaluation results.

Parameters:

  • results: MOABB evaluation DataFrame with columns dataset, pipeline, subject, score.

  • greater_is_better: If True, higher scores rank better (e.g. accuracy). If False, lower scores rank better (e.g. error rate).

Each dataset is treated as an independent study and each pipeline as a treatment. Per-subject scores are averaged per dataset before being passed to the model.

Returns a dict with:

  • ranking: SUCRA per pipeline (0-1, higher = better rank).

  • league: Pairwise posterior median md and 95% credible interval lower, upper - each a pipeline x pipeline matrix.

  • heterogeneity: Posterior sd, sd_lower, sd_upper (2.5th-97.5th percentile).

  • convergence: rhat_max, ess_bulk_min, ess_tail_min across all model parameters.