Simulation Study

Read this page as an imitation and diagnostic validation page. Passing regret checks is not enough here; reward, value, Q, and coverage gates decide whether the objects can be read structurally.

IQ-Learn runs on three synthetic cells covering low-dimensional tabular, high-dimensional neural, and state-only reward settings. Each cell has known transitions, policy, value, Q function, and counterfactual oracle objects, so every recovery claim is checked against the truth. The primary cell is canonical_low_action.

The full result generator is run.py. It writes the results file iq_learn.json.

cd /path/to/econirl
PYTHONPATH=src:. python validation/estimators/iq_learn/run.py

The estimator passes imitation and counterfactual regret checks on the primary cell. Reward, value, and Q recovery fail. Low regret on this cell reflects that the Q-induced policy happens to produce near-oracle welfare under the applied interventions, not that the reward or value objects are structurally accurate. The high-dimensional neural cell and state-only cell fail most structural recovery checks as well.

Sparse-Support Guard

The sparse-support guard uses a tiny panel with one observed state and one observed state-action pair (state coverage 0.333, state-action coverage 0.167). Even when all non-coverage metrics pass, the run is not counterfactual-valid because support checks fail. The guard prevents future changes from treating small policy or regret numbers as sufficient when the expert panel does not cover the relevant state-action space.

PYTHONPATH=src:. python validation/estimators/iq_learn/sparse_support_guard.py

Results: iq_learn_sparse_support_guard.json.

Evidence

IQ-Learn is compared against the full structural and IRL rosters on the bus engine and taxi gridworld pages. See the simulation studies index for what each study shows.