Prior Sensitivity and Simulation-Based Recovery
Source:vignettes/sensitivity-and-recovery.Rmd
sensitivity-and-recovery.RmdDifferent validation questions
Prior sensitivity and parameter recovery answer different questions.
Prior sensitivity asks whether selected posterior summaries change materially under prespecified defensible prior-scale changes.
Recovery asks whether the complete simulation, preparation, specification, fitting, and summarization workflow can recover known generating values under a declared synthetic design.
Neither procedure proves that a model is appropriate for every empirical data set.
Prior-scale sensitivity
Binary and duration sensitivity functions refit the same approved formula, likelihood, backend, and sampling algorithm. Only declared prior scales are multiplied.
binary_sensitivity <- assess_binary_prior_sensitivity(
binary_fit,
scale_multipliers = c(
tighter = 0.5,
wider = 2
),
maximum_standardized_shift = 0.25,
review_standardized_shift = 0.50
)
binary_sensitivity
binary_sensitivity$comparison
duration_sensitivity <- assess_duration_prior_sensitivity(
duration_fit,
scale_multipliers = c(
tighter = 0.5,
wider = 2
)
)The standardized shift is the absolute change in posterior median
divided by the reference posterior standard deviation. A pass applies
only to the declared multipliers. The object always records
robustness_claim = FALSE.
Simulation-based recovery
The recovery functions repeatedly:
- generate deterministic synthetic data with stored truth;
- create the approved model contract;
- prepare and audit the data;
- specify the approved priors;
- fit through
brmsandrstan; - run the sampling diagnostic contract;
- calculate bias, RMSE, interval coverage, and interval width.
binary_recovery <- run_binary_recovery(
repetitions = 20,
n_participants = 30,
trials_per_participant = 16,
seed = 5001
)
duration_recovery <- run_duration_recovery(
repetitions = 20,
n_participants = 30,
trials_per_participant = 16,
baseline_median = 500,
outcome_unit = "milliseconds",
seed = 6001
)Minimum repetition rule
The default reporting contract requires at least 20 completed
repetitions before an overall recovery pass is possible. A smaller run
can detect obvious software or workflow failures, but its best possible
status is review.
This rule prevents a two- or five-repetition smoke test from being described as validation.
Failure handling
With continue_on_error = TRUE, a failed repetition is
retained in the fit-status registry. It is not silently removed from the
denominator. Repeated fitting failures lower the diagnostic pass
fraction and can force review or failure.
Interpretation
Recovery is conditional on:
- the selected data-generating parameters;
- sample size and grouping structure;
- the approved prior specification;
- the chosen MCMC settings;
- the interval probability;
- the declared recovery thresholds.
A successful recovery experiment is evidence about that design. It is not a universal guarantee of unbiased inference, causal identification, or substantive validity.