Skip to content

Make discrete-factor sensitivity and shared-group validation explicit - #222

Merged
jc-macdonald merged 1 commit into
mainfrom
work/table-sensitivity-scope-220
Oct 22, 2026
Merged

jc-macdonald merged 1 commit into
mainfrom
work/table-sensitivity-scope-220

Conversation

@jc-macdonald

@jc-macdonald jc-macdonald commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

A pooled results table could silently drop discrete capacity/rules from sensitivity analysis, concealing their effects or attributing them to continuous settings. Refuse varying discrete/categorical factors and undeclared varying configuration keys. Add explicit observed-stratum condition_on selection, bind observed constants (including continuous inputs made constant by conditioning), screen only varying continuous factors, and return scope, target bounds/log scales, original row identities and marginal support.

Forward actual grouped validation and retain grouped/row R² and RMSE without substituting row metrics when groups are unavailable. Add explicit cv_groups for shared dataset/replicate partitions crossing designs; validate the full original ordered vector before conditioning, merge equal finite numeric identities, retain labels/source/IDs and reject missing labels, unordered/mapping inputs and conflicting group sources. Reuse the existing surrogate GroupKFold path. One partition does not automatically block crossed dependencies.

The complete executable guide uses direct factorial/paired contrasts for discrete effects, explains why conditional Sobol indices do not measure q or its interactions, and states independent uniform/log-uniform sampling and joint-support limits. No frozen study, environment, manuscript or consumer pin changes.

Qualification covers q-only outcomes, q×log-prior interactions/confounding, analytic conditional 0.8/0.2 indices, constant dimensions, hidden keys, held-out design/dataset validation, row-CV leakage, source alignment, GP/RF and the full guide. A required older-stack job runs all selected scope/group tests without skips on Python3.11/NumPy1.24/scikit-learn1.3.2/SALib1.5.0/SciPy1.11.4/pandas2.0.3.

Final committed head: 0f3aa346d8cc36cd56f84eb5d0b94947762875e7. Full source and clean installed wheel each passed 989 tests; all 67 selected older-stack cases passed without skips. Strict Ruff, full source mypy, strict documentation, distribution metadata and figure checks passed. An independent agent approved this exact head and independently reran all 21 external-group cases after its unordered-vector finding was fixed; the broader independent run passed 61 cases. Hosted CI remains a merge gate.

Closes #220.

@jc-macdonald

Copy link
Copy Markdown
Collaborator Author

Independent agent review approved exact head 0f3aa346d8cc36cd56f84eb5d0b94947762875e7, after separate source/API/methods review and rerunning all 21 final external-group cases. The broader independent run passed 61 cases. Its unordered-vector finding was fixed and regression-tested before approval; no blockers remain.

All 11 hosted checks now pass on that head, including Python3.10–3.13, clean wheel, examples, older numerical stack and the aggregate gate. Exact-head local qualification passed 989 source and 989 installed-wheel tests, 67 older-stack cases without skips, strict quality/types/docs and distribution checks. Merge uses the maintainer-authorized review override after both required gates are satisfied.

@jc-macdonald
jc-macdonald merged commit 2e87bc3 into main Oct 22, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make table sensitivity explicit about discrete factors and grouped surrogate validation

1 participant