Propagating AOI Uncertainty Into Statistical Models¶
The package can rerun the same prespecified model after each AOI perturbation through an explicit callback. It never chooses the estimator, family, covariates, random-effects structure, link, or exclusion rule for you.
Callback contract¶
Each successful branch returns at least term, estimate, SE, CI_low, CI_high, p_value, model_converged, and N. eyeprocesspy adds perturbation_id and coefficient direction.
The callback contract is strict:
termmust be non-empty;model_convergedmust be boolean,0/1, or missing—strings such as"yes"are rejected;- numeric fields must be numeric or missing;
- converged rows require finite
estimate,SE,CI_low,CI_high, and a positive integer-valuedN; - a callback exception is retained as a model-stage failure.
This prevents a malformed or failed fit from being silently summarized as a valid branch.
What to summarize¶
Use assess_aoi_inference_stability() to report more than direction alone:
For each term, inspect:
- number and proportion of converged branches;
- same-sign frequency relative to the converged baseline;
- median and range of coefficient estimates;
- median confidence-interval width;
- median and range of model
N.
A stable coefficient with changing N is not the same analytical result as a stable coefficient with constant N. Report branch-specific case loss when it occurs.
Do not use significance counts as the robustness result¶
A branch crossing p = .05 can reflect interval width, model N, or numerical variation without a meaningful reversal of the estimated effect. Prefer magnitude, direction, uncertainty intervals, convergence, and assignment stability.
The same-sign proportion is descriptive sensitivity evidence, not the probability that an effect exists.
Continue to the AOI robustness decision clinic and Reporting AOI Robustness.