Pre-Estimation Checks

UFXP inverts empirical choice probabilities state by state, so its pre-estimation risks are CCP’s plus the usual linear-utility ones. Check these before fitting:

Check

Why it matters for UFXP

Feature rank

A rank-deficient design leaves a direction of theta undetermined; the closed-form solve flags it through converged_.

Feature condition number

Ill-conditioning inflates the variance of the closed-form solve.

State coverage

Conditions are scored only at visited states; unvisited states drop out, and very thin coverage leaves few usable conditions.

Action support per state

A state where one action is never taken makes the log-odds inversion degenerate at that state.

Transition row sums

Transition tensors must be row-stochastic in the (n_actions, n_states, n_states) orientation.

Reward normalization

One action’s utility should anchor the normalization (the reference action).

Canonical Simulation Checks

Values from the canonical synthetic run (see Simulation Study):

Check

Value

Status

Feature rank

4 / 4

pass

Feature condition number

4.51

pass

Observed states

21 / 21

pass

State-action coverage

1.000

pass

Minimum action share

0.325

pass

Common Risk Patterns

Concentrated panels are the pattern to watch. When most trajectories visit a narrow corridor of states (a gridworld walked corner to corner, a mileage process that rarely runs high), the choice-probability estimates at the edges are noisy or absent. The optimal weighting handles this gracefully — thin states are downweighted by their sample share rather than trusted — but no weighting can recover information the data never carried. If coverage is thin everywhere, prefer NFXP, which pools all observations through the likelihood.