Convert warm-start predictions to Bayesian BTL priors
Source:R/warm_start_prior.R
make_warm_start_prior.RdConvert warm-start predictions to Bayesian BTL priors
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. This default is a chosen prior width, not learned uncertainty calibration.
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 by default.
Explicit warm_start_trueskill = "predictive_distribution" additionally maps
sigma = (25/3) * prior_sd, keeping beta = 25/6, without clipping. A prior
object supplies its stored SD; model input requires explicit SD in that mode.
This assumes comparable latent scales and does not turn raw-theta SD into the
marginal SD of centered effects. Upstream workflows must establish calibration;
explicit SD alone does not prove it. Scalar SD is a sensitivity assumption,
not essay-specific calibration. Ensemble disagreement never supplies SD automatically.
By default, every adaptive mode retains the same seeded connected shuffled
bootstrap. The separate bootstrap_policy = "predictive_connected" opt-in
uses frozen mapped means and SDs to build an allowed spanning tree; see
adaptive_rank_start() for its reservoir and selection requirements.
Standalone fit_bayes_btl_mcmc() retains its warm_start_prior interface
without the adaptive four-mode argument.
See also
predict.pairwiseLLM_warm_model(), predict.pairwiseLLM_warm_ensemble(),
ensemble_warm_start_algorithms(),
fit_bayes_btl_mcmc(), adaptive_rank_start(), adaptive_rank_resume()
Other adaptive warm start:
ensemble_warm_start_algorithms(),
ensemble_warm_start_models(),
extract_warm_start_features(),
fit_warm_start_model(),
make_warm_start_cv_plan(),
pairwiseLLM_warm_model,
predict.pairwiseLLM_warm_algorithm_ensemble(),
predict.pairwiseLLM_warm_ensemble(),
predict.pairwiseLLM_warm_model(),
prepare_warm_start_model(),
register_warm_start_model(),
save_warm_start_model(),
summary.pairwiseLLM_warm_algorithm_ensemble(),
summary.pairwiseLLM_warm_ensemble(),
summary.pairwiseLLM_warm_predictions(),
warm_start_coefficients(),
warm_start_feature_schema(),
warm_start_python_status()
Examples
prior <- make_warm_start_prior(c(a = -1, b = 0, c = 1))
prior$prior_mean
#> [1] -1 0 1