Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt the nuisance estimation for the IV type score in the PLR model #147

Merged
merged 10 commits into from
Jun 14, 2022

Conversation

MalteKurz
Copy link
Member

@MalteKurz MalteKurz commented Apr 26, 2022

Description

In this PR the nuisance estimation for the IV-type score in the PLR model is adapted to be in line with the DML paper Chernozhukov et al. (2018).

  • Results for the default score='partialling out' (Equation (4.4) in Chernozhukov et al. (2018)) are not affected by the changes in this PR. However, the naming of the predictions is changed from g_hat to l_hat to be better in line with Chernozhukov et al. (2018). Still the API is not changed to be backward-compatible, i.e., when initializing an DoubleMLPLR object, learners ml_g and ml_m need to be specified. The estimator ml_g is then used to estimate the effect of X on Y (i.e. l_0(X) = E[Y|X]) and the estimator ml_m to estimate the effect of X on D (i.e. m_0(X) = E[D|X]). When setting hyperparamters learner='ml_l' and learner='ml_m' should be used.
  • For the score='IV-type' (Equation (4.3) in Chernozhukov et al. (2018)) the implementation now follows the approach described on pp. C31-C33 in Chernozhukov et al. (2018). This means that an initial estimate for theta_0 is obtained via the 'partialling out' score. Then an estimate for g_0(X) is obtained by regressing Y - theta_0 * D on X. For both nuisance functions l_0(X) (needed for the preliminary theta_0 estimate) and g_0(X), the same ML estimator (specified in ml_g) is used. However, hyperparamters can be set individually via learner='ml_l' and learner='ml_m'.

PR Checklist

  • The title of the pull request summarizes the changes made.
  • The PR contains a detailed description of all changes and additions.
  • References to related issues or PRs are added.
  • The code passes all (unit) tests.
  • Enhancements or new feature are equipped with unit tests.
  • The changes adhere to the PEP8 standards.

@MalteKurz MalteKurz marked this pull request as draft April 26, 2022 13:49
@MalteKurz MalteKurz marked this pull request as ready for review April 27, 2022 09:05
@MalteKurz
Copy link
Member Author

I changed this PR back into a draft PR, as we first need to discuss whether we want to additionally adapt the API or not.

@MalteKurz MalteKurz marked this pull request as draft April 27, 2022 15:44
@MalteKurz MalteKurz merged commit ae90022 into master Jun 14, 2022
@MalteKurz MalteKurz removed the request for review from PhilippBach June 14, 2022 08:47
@MalteKurz MalteKurz deleted the m-iv-type-score branch June 15, 2022 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant