Prior Marginalization

Use PriorMarginalizedTempoTask to marginalize over a parameter using a prior and a node rule. It chains or independently executes a series of runs with per-node overrides, aggregating results.

Settings

  • PriorMarginalizationSettings controls the parameter (parameter::Symbol), the prior (AnalyticPrior | GridPrior | SampledPrior), node selection (e.g., ClenshawCurtisNodes), and execution options (PriorExecutionOptions).
  • Likelihood source and representative can be customized (e.g., :chi2_fit, :prior_median).

Example

base = BasicTempoTask(TempoRunSettings(
  work_dir="/abs/work", par_input="a.par", tim_input="a.tim", par_output="a_out.par", tempo_version=Tempo2()))

ps = PriorMarginalizationSettings(
  parameter=:DDOT,
  pin_mode=:fixed,
  prior=SampledPrior("DDOT_prior.dat"),
  nodes=ClenshawCurtisNodes(6),
  likelihood_source=:chi2_fit,
  representative=:prior_median,
  save_node_results=true,
  exec_options = PriorExecutionOptions(mode=:chained, chain_direction=:backward, chain_snapshot_par=true)
)

task = PriorMarginalizedTempoTask(base, ps)
res = run_task(task)