Skip to main content

Module bradley_terry

Module bradley_terry 

Source
Expand description

Bradley-Terry model implementation with Maximum Likelihood Estimation

This module provides proper MLE-based Bradley-Terry model fitting with two optimization algorithms:

  • Newton-Raphson: Fast convergence, provides Fisher Information for uncertainty
  • MM (Minorization-Maximization): Simple, guaranteed convergence, uses bootstrap for uncertainty

§Bradley-Terry Model

The Bradley-Terry model estimates the probability that candidate i beats candidate j as:

P(i beats j) = π_i / (π_i + π_j)

where π_i is the “strength” parameter for candidate i.

§Example

use fugue_evo::interactive::bradley_terry::{BradleyTerryModel, BradleyTerryOptimizer};

let comparisons = vec![
    ComparisonRecord { winner: CandidateId(0), loser: CandidateId(1), generation: 0 },
    ComparisonRecord { winner: CandidateId(0), loser: CandidateId(2), generation: 0 },
];

let model = BradleyTerryModel::new(BradleyTerryOptimizer::default());
let result = model.fit(&comparisons, &candidate_ids);

let estimate = result.get_estimate(CandidateId(0));
println!("Strength: {:.2} ± {:.2}", estimate.mean, estimate.std_error());

Structs§

BradleyTerryModel
Bradley-Terry model for pairwise comparison data
BradleyTerryResult
Result of Bradley-Terry MLE optimization

Enums§

BradleyTerryOptimizer
Bradley-Terry optimizer configuration