-
Notifications
You must be signed in to change notification settings - Fork 101
Description
Describe the feature you want to propose or implement
Hi folks. First off, congrats on your work on this great package, it's super useful!
Together with @david26694 we have been working on a project studying the properties of certain procedures to construct confidence sets for the local average treatment effect that are, in a sense, robust to weak instruments.
Just in case, I'll sum up some aspects of the literature here briefly. It is well known that Wald type confidence intervals can very low coverage under models that allow for the effect of the instrument on the treatment to be very weak. This and this are two classic references. I've also recently shown that this remains the case even when the underlying model accounts for all the restrictions encoded in the instrumental variables model; see this. The results in these papers imply that any method that has uniform coverage over a model that allows for arbitrarily weak instruments must have infinite length with high probability under some laws. Given these problems and the high prevalence of weak instruments in applications, it seems desirable to have flexible methods at hand that reliably let the practitioner know that something might be off, by returning an infinite (or empty) confidence set.
For linear models, this is a very well studied problem, and the usual recipe is to construct a confidence interval by inverting the Anderson Rubin test, which is just the score test. This has been generalized to non-parametric models in Stock and Wright (2000) and Ma (2023). The idea is essentially to take the non-parametric influence function, estimate the nuisances with some flexible method, use this as a score, and then again invert the score test (all this possibly using cross-fitting).
Given all the work already done in DoubleML it seems to us that this method could be easily added to the existing package, and would be highly valued to practitioners. We are not aware of other open source implementations of it in Python.
Would you be interested in us contributing this method?
Best
Propose a possible solution or implementation
To implement it, we would add a new method to the DoubleMLIIVM class. It could be called robust_confint() or something of the sort. The method would compute the confidence set as described above. Note that in general the confidence set could be an interval, a union of intervals, the whole real line, or the empty set, and thus the output should be structured somewhat differently from confint().
Did you consider alternatives to the proposed solution. If yes, please describe
No response
Comments, context or references
No response