Update confounding scores
Closed this issue · 0 comments
katehu commented
Current workflow:
outcome_featimp = featimp.loc[treat_featimp.index] / yscale
confounding_score = np.minimum(
outcome_featimp.importance, treat_featimp.importance
Issues:
-
When a covariate in the model is highly correlated with the feature masked, even if the importance of this feature is high in predicting outcome and treatment, not adjusting for this feature won't bias the result much.
- Regarding the dose-response curve, the bias due to unmeasured spatial confounding may differ across all exposure levels. How do we account for this variation?
- If the shape of the dose-response curve is not simple, we may not have enough data in some exposure range to quantify the bias and the confounding strength.
Solutions:
Suppose our exposure has 100 levels. We compare counterfactuals before and after adjusting for this feature for every exposure level. We obtain 100 differences. Among these 100 differences, we remove the contribution from those exposure levels, within a neighborhood of each of them, there are < 5 data points. After removal, suppose we have 80 differences, the average of these 80 differences is used as our confounding score.