Skip to content

Conversation

@SvenKlaassen
Copy link
Member

@SvenKlaassen SvenKlaassen commented Jun 20, 2024

Average Potential Outcomes

Adding DoubleMLAPO to estimate (weighted) average potential outcomes

$$\theta_0 = \mathbb{E}[\omega(Y,D,X) \cdot Y(a)]$$

for some treatment value $D=a$.

Further adding DoubleMLAPOS to simultaneously compute multiple discrete average potential outcomes and effects.

New DGP

New dgp make_irm_data_discrete_treatements.

Additional updates

Add optional treatment_names and summary to DoubleMLFramework.

Reference to Issues or PRs

First step to implement #245

Comments

DoubleMLAPO supports:

  • Sensitivity analysis
  • weights
  • External predictions
  • Tuning
  • Conditional and group estimates

DoubleMLAPOS supports:

  • Sensitivity analysis
  • Benchmarking
  • weights
  • External predictions

PR Checklist

Please fill out this PR checklist (see our contributing guidelines for details).

  • 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.

_check_is_propensity


class DoubleMLAPO(LinearScoreMixin, DoubleML):

Check warning

Code scanning / CodeQL

Conflicting attributes in base classes

Base classes have conflicting values for attribute '_score_element_names': [Property _score_element_names](1) and [Property _score_element_names](2).
_check_score(self.score, valid_scores, allow_callable=False)

# set stratication for resampling
self._strata = self._dml_data.d

Check warning

Code scanning / CodeQL

Overwriting attribute in super-class or sub-class

Assignment overwrites attribute _strata, which was previously defined in superclass [DoubleML](1).

ml_g_is_classifier = self._check_learner(ml_g, 'ml_g', regressor=True, classifier=True)
_ = self._check_learner(ml_m, 'ml_m', regressor=False, classifier=True)
self._learner = {'ml_g': ml_g, 'ml_m': ml_m}

Check warning

Code scanning / CodeQL

Overwriting attribute in super-class or sub-class

Assignment overwrites attribute _learner, which was previously defined in superclass [DoubleML](1).
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.

2 participants