Skip to content

Fix publication OPE support with experiment cross-fitting - #70

Merged
vtavakkoli merged 7 commits into
mainfrom
agent/crossfit-ope-support-fix
Aug 19, 2026
Merged

Fix publication OPE support with experiment cross-fitting#70
vtavakkoli merged 7 commits into
mainfrom
agent/crossfit-ope-support-fix

Conversation

@vtavakkoli

Copy link
Copy Markdown
Owner

Summary

Fix the publication blocker exposed by the corrected independent evaluation: the earlier configuration-level policy/OPE split left only ~1% seen and ~6% unseen evaluator support for proposed actions. This PR replaces that partition with experiment-level role-swapped cross-fitting and constrains all counterfactual methods to common policy/OPE action support.

Scientific fix

Experiment-level role swap

For each COMMAG experiment:

  • proposed policy + FQI/CQL/HGB are fitted on tr0tr11 from that experiment;
  • the independent OPE evaluator is fitted on tr0tr11 from the opposite experiment(s);
  • validation from the policy experiment calibrates thresholds/CQL/hysteresis;
  • seen/unseen final-test rows from that experiment are evaluated exactly once.

With two experiments this is:

Fold A: policy/baselines <- exp1 | OPE <- exp2
Fold B: policy/baselines <- exp2 | OPE <- exp1

This preserves all training configurations on both evidence roles instead of sacrificing action coverage by holding out whole configurations.

Positivity/common-support constraint

Before calibration/evaluation, OfflinePolicyBundle.actions_by_slice is restricted to the intersection of actions observed in policy-fit and OPE-fit data for each slice. The same support restriction therefore automatically applies to:

  • proposed controller selection;
  • FQI action selection;
  • linear CQL action selection;
  • HGB behavior baseline normalization.

The primary statistics can no longer contain counterfactual actions unsupported by the independent evaluator.

Readiness now also requires:

  • =80% of policy action cells retained by common support;

  • =2 common actions per slice;

  • = configured evaluator-support gate on seen and unseen tests.

This prevents a trivial one-action collapse from falsely satisfying the support gate.

Correct scientific framing

The report now explicitly limits claims when evidence is weak:

  • zero within-episode scheduler+PRB changes => frame as offline RAN configuration/policy selection, not demonstrated dynamic closed-loop control;
  • OOD AUROC <0.70 => OOD remains a secondary limited-discrimination diagnostic;
  • p95 host/container latency >500 ms => no real-time RIC claim;
  • negative clustered utility CI => no utility-superiority claim; report utility-vs-churn/safety trade-off instead.

A new tradeoff_summary.json exports utility delta, churn reduction, SLA delta, and clustered effects for each baseline.

HTML report

The self-contained report.html now adds:

  • experiment role-swap explanation;
  • common-support/positivity table per fold;
  • allowed manuscript claims and restrictions.

No external assets are introduced.

Tests

The synthetic publication integration test now executes the production cross-fit path and verifies:

  • two experiment role-swap folds;
  • disjoint policy/OPE experiments;
  • 100% common support in the synthetic fixture;
  • =95% evaluator support on seen/unseen data;

  • generated cross-fit HTML report and trade-off artifact.

Run

docker compose -f docker-compose.publication.yml up --build --force-recreate publication-test

The full COMMAG benchmark must be rerun after this PR. Previous numerical results must not be reused because the evidence partition, action support, and final counterfactual estimates change.

@vtavakkoli
vtavakkoli marked this pull request as ready for review August 19, 2026 12:04
@vtavakkoli
vtavakkoli merged commit 8331f7d into main Aug 19, 2026
7 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.

1 participant