← all work causal-inference

Adjustment choice

Observational data cannot tell you which variables to control for. The causal structure

Result

structureshapethe correct move
confounder`C → T`, `C → Y`**must** adjust
collider`T → K`, `Y → K`must **not** adjust
mediator`T → M → Y`must not, if you want the total effect
instrument`Z → T`no effect on bias either way

The finding

Fit quality cannot tell you which

If a practitioner cannot know the structure, the natural fallback is to let the data choose — add the variable, see if the model improves. It always does:

R² prefers adjusting in all four cases and is right in one. That is exactly the score a rule of "always adjust" would get, so R² carries no information about the choice at all.

Adjusting for the collider raises R² from 0.8003 to 0.9002 — a 12.5% improvement in fit — while moving the estimate 75% away from the truth. Better fit, worse answer, measured on the same data.

Figures

adjustment.png
adjustment
instrument_precision.png
instrument_precision

Elsewhere

Code and full results on GitHub

Every number is read from the file the run produced. github.com/hammasbuilds · kaggle.com/muhammadhammas13