SyntheticControl.power_analysis#

SyntheticControl.power_analysis(effect_sizes, n_simulations=50, criterion='hdi_excludes_zero', effect_type='relative', holdout_periods=None, sample_kwargs=None, random_seed=None)[source]#

Simulation-based Bayesian power curve.

For each candidate effect size, runs validate_design() multiple times (with added noise) and records detection rates.

Parameters:
  • effect_sizes (list[float]) – Candidate effect sizes to evaluate.

  • n_simulations (int) – Number of simulations per effect size.

  • criterion (Literal['hdi_excludes_zero', 'prob_gt_zero', 'recovery_accuracy']) –

    Detection criterion: - "hdi_excludes_zero": 94 % HDI of cumulative impact

    excludes zero.

    • "prob_gt_zero": P(cumulative impact > 0) > 0.95.

    • "recovery_accuracy": posterior mean within 20 % of injected truth.

  • effect_type (Literal['relative', 'absolute']) – Passed through to validate_design.

  • holdout_periods (int | None) – Passed through to validate_design.

  • sample_kwargs (dict | None) – MCMC sampling arguments for refitted models.

  • random_seed (int | None) – RNG seed for reproducible noise injection.

Return type:

PowerCurveResult