Skip to contents

Convert warm-start predictions to Bayesian BTL priors

Usage

make_warm_start_prior(predictions, ids = NULL, prior_sd = 0.5)

Arguments

predictions

Calibrated single-model or ensemble predictions, or finite numeric scores with names or explicit ids. Numeric input is an expert choice of relative prior location, not an automatic calibration method.

ids

Active item IDs. For prediction tables and named scores these must match the input ID set exactly and determine output order. For unnamed scores they identify input positions. Defaults to the IDs in the input.

prior_sd

Positive finite scalar or vector. An unnamed vector follows input order; a named vector aligns by ID. Defaults to 0.5.

Value

A version-1 pairwiseLLM_warm_prior list containing item_id, scores, prior_mean, prior_sd, compact diagnostics, provenance, and an integrity digest. Pass this object to fit_bayes_btl_mcmc() or adaptive_rank_start().

Details

Single-model values must have learned OOF calibration. Ensembles use their equal-weight calibrated mean. Scores are centered over the active items in R; adaptive scoped refits subset the saved scores and center again in that scope. Calibration is not applied twice and original training BTL units are not used. Ensemble component predictions and sample disagreement SD remain diagnostics; disagreement never supplies the Bayesian prior SD automatically.

The normal prior applies to theta_raw; Stan centers this to obtain theta. Centering induces dependence, so the supplied SD is not the marginal SD of centered theta. Without predictive input, BTL retains raw prior mean 0 and SD 1. Adaptive BTL consumes this prior only in btl_only and both modes. Adaptive trueskill_only and both also use its centered prior_mean to initialize TrueSkill locations as 25 + (25/3) * prior_mean, with unchanged sigma. The BTL prior SD and ensemble disagreement never determine TrueSkill sigma. Every adaptive mode retains the same seeded connected shuffled bootstrap. Standalone fit_bayes_btl_mcmc() retains its warm_start_prior interface without the adaptive four-mode argument.

Examples

prior <- make_warm_start_prior(c(a = -1, b = 0, c = 1))
prior$prior_mean
#> [1] -1  0  1