Counterfactuals

Read this page as structural re-solving for parameter changes. CCP shares the finite reward target with NFXP, but the public wrapper currently exposes fewer one-call intervention types.

The public counterfactual method handles structural parameter changes. It solves the fitted model again after changing one or more fitted parameters.

cf = model.counterfactual(RC=4.0)

print(cf.params)
print(cf.value_function)
print(cf.policy)

The method returns a parameter dictionary, value function, and policy. It does not currently expose a one-call public interface for changing transitions or disabling actions.

Counterfactual Families

The simulation harness evaluates three broader counterfactual families against oracle solutions.

Type

Intervention

Purpose

Type A

Shift rewards and hold transitions fixed.

Payoff counterfactual.

Type B

Change transitions and hold rewards fixed.

State-dynamics counterfactual.

Type C

Disable one non-anchor action.

Action-set or design counterfactual.

Reported Results

These rows come from the same simulation results file used on the simulation study page.

Counterfactual

Policy TV

Policy KL

Value RMSE

Regret

Type A

0.005109

7.56e-5

0.000238

0.000213

Type B

0.005457

8.20e-5

0.000363

0.000362

Type C

0.003548

3.56e-5

0.000114

0.000086

The regret values report how the policy from the recovered reward compares with the oracle counterfactual policy.