[Feature Request]: Support for multiple discrete treatments in `doubleml.DoubleMLIRM`
apoorvalal opened this issue ยท 4 comments
Describe the feature you want to propose or implement
Would be nice to extend the DoubleMLIRM
class to accommodate multiple discrete-valued treatments
which can be constructed at the unit level, and the subsequent analysis can be performed as usual (the binary influence function would be a special case where one constructs
Nuances:
- ATT isn't a well defined concept for multiple-treatments (or at the very least one has to stipulate the subpopulation that is allowed to contribute to the estimator of
$E[Y^({0}) \mid W = 1]$ , typically the 'pure control' (0-valued by convention) subpopulation might be reasonable)
Propose a possible solution or implementation
This approach is implemented in Ed Kennedy's package, and I have a minimal implementation in this library. Wondering if there's interest in accommodating this use case (since this will involve changing IIRM
from check_data
onwards.
Did you consider alternatives to the proposed solution. If yes, please describe
No response
Comments, context or references
No response
Thanks @apoorvalal for adding this feature request. We are working on an extension to the multi-treatment IRM model. Also thanks for the hint for the ATET in multi-treatment, makes sense ๐
We are currently working on various extensions including a change of the DoubleML interface to make it possible to better combine various DoubleML objects... The development is already pretty far but we are facing a couple of issues regarding parallel changes (new model, also docu updates etc). Maybe @SvenKlaassen can add more info to what extent multi-level treatment IRM is already possible with the dev version. Anyways, I think the refactoring will be completed in the next months.
We'll add an update and an example here
Yes, i think this would be a great addition.
The with the new DoubleMLFramework
class it should be possible to substract two potential outcome estimates, such that an implementation for average potential outcomes DoubleMLQTE
, see https://github.com/DoubleML/doubleml-for-py/blob/main/doubleml/irm/qte.py) could handle the comparisons on different levels.
@apoorvalal, I have added a new class DoubleMLAPO
for average potential outcomes.
Maybe you would like to take a look at the current development version of the documentation?
Any feedback is highly appreciated.
I will close this issue as the feature is implemented in #250