Skip to content

Update Documentation to 0.9.1 #205

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

Merged
merged 82 commits into from
Jan 7, 2025
Merged
Changes from 1 commit
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
46b29c6
Create py_flaml_meets_doubleml_evaluate_learners.ipynb
sauravbania Jul 16, 2024
5a6d514
update
OliverSchacht Jul 16, 2024
608e7b0
Flaml_meets_doubleML
sauravbania Sep 17, 2024
e262011
AutoML tuning comparison
sauravbania Sep 17, 2024
4f74f49
Merge remote-tracking branch 'fork2/patch-2' into p-flaml
PhilippBach Sep 18, 2024
d244b5a
use r-lib actions to set up R on ubuntu-latest
PhilippBach Sep 19, 2024
8318751
upd r-lib actions in deploy test
PhilippBach Sep 19, 2024
d2d9b95
remove redundancy
PhilippBach Sep 19, 2024
3f0ecfa
roll back, for workflow dispatch
PhilippBach Sep 19, 2024
389c036
r-lib actions for stable test
PhilippBach Sep 19, 2024
5a29502
rename and update flaml notebook
PhilippBach Sep 19, 2024
3424ea9
add flaml
PhilippBach Sep 19, 2024
c677d7c
upd notebook
PhilippBach Sep 19, 2024
1a417e0
add knitr dependency
PhilippBach Sep 19, 2024
40aa1f7
setup pandoc
PhilippBach Sep 19, 2024
61d2566
fix url (broken url)
PhilippBach Sep 19, 2024
c3fe936
exception for unifr.ch
PhilippBach Sep 19, 2024
db9696b
fix IRM link in APO example
PhilippBach Sep 20, 2024
ca67450
install R dependencies through r-lib workflow
PhilippBach Sep 20, 2024
0e88854
roll bakc
PhilippBach Sep 20, 2024
2061489
upd link in other files
PhilippBach Sep 20, 2024
d3af44a
Merge branch 'p-actions' of https://github.com/DoubleML/doubleml-docs…
PhilippBach Sep 20, 2024
dde4147
test workflow
PhilippBach Sep 27, 2024
fc4f8fb
add rdd.rst
OliverSchacht Oct 7, 2024
46de31d
update doc
OliverSchacht Oct 8, 2024
6a2485c
add example notebook, work in progress
OliverSchacht Oct 8, 2024
085690c
completly rework everything
OliverSchacht Oct 9, 2024
0369a9e
install libcurl
PhilippBach Oct 14, 2024
1bd222e
Merge branch 'p-actions' of https://github.com/DoubleML/doubleml-docs…
PhilippBach Oct 14, 2024
8a5893c
fix link to irm models
PhilippBach Oct 15, 2024
d188f49
Merge branch 'p-fix-urls' of https://github.com/DoubleML/doubleml-doc…
PhilippBach Oct 15, 2024
3a9afbb
use workflow from main branch
PhilippBach Oct 15, 2024
99f8b34
use workflow for stable deploy based on main branch
PhilippBach Oct 15, 2024
a9622b2
Merge pull request #201 from DoubleML/p-fix-urls
PhilippBach Oct 18, 2024
30d3b1a
proofread
OliverSchacht Oct 21, 2024
f94765c
Merge pull request #199 from DoubleML/p-flaml
OliverSchacht Oct 21, 2024
8f86242
Update py_double_ml_rdflex.ipynb
OliverSchacht Oct 22, 2024
2803eda
update (still draft)
OliverSchacht Oct 22, 2024
63817be
Update py_double_ml_rdflex.ipynb
SvenKlaassen Oct 22, 2024
a24c9df
Merge branch 'o-add-rdd' of https://github.com/DoubleML/doubleml-docs…
SvenKlaassen Oct 22, 2024
f9cd0dd
add rdd
OliverSchacht Oct 23, 2024
8da75d2
finish rdd docu
OliverSchacht Oct 23, 2024
690e783
add implementation details
OliverSchacht Oct 23, 2024
7655275
Update rdd.rst
OliverSchacht Oct 23, 2024
ac75365
fix broken links
OliverSchacht Oct 23, 2024
5fc6095
Merge branch 'dev' into o-add-rdd
OliverSchacht Oct 23, 2024
c1721ab
add rdrobust to requirements
OliverSchacht Oct 23, 2024
8cadf92
fix example in rdd,rst
OliverSchacht Oct 23, 2024
ffd64a3
apparently sphinx does not like multi line code
OliverSchacht Oct 23, 2024
126c549
add rdd literature
OliverSchacht Oct 24, 2024
223d1a9
add rdd example
OliverSchacht Oct 24, 2024
1ff3ada
revision
OliverSchacht Oct 24, 2024
7ae7964
fix broken links
OliverSchacht Oct 24, 2024
b3d0433
add cattaneo link to exceptions
OliverSchacht Oct 25, 2024
ff18f88
add rdd api
OliverSchacht Nov 13, 2024
2054bed
revision according to feedback
OliverSchacht Nov 13, 2024
d0dec8f
revision according to feedback
OliverSchacht Nov 13, 2024
54c13f8
update r version
SvenKlaassen Nov 14, 2024
38d5f21
fix argmin
OliverSchacht Nov 14, 2024
9589cbc
add non-adj learner
OliverSchacht Nov 14, 2024
95999a9
typos
OliverSchacht Nov 14, 2024
f563a7e
Update test_build_docu_dev.yml
SvenKlaassen Nov 15, 2024
13b0ae3
set runner to 22.04 version
SvenKlaassen Nov 15, 2024
44ba901
Merge pull request #203 from DoubleML/s-update-workflows
SvenKlaassen Nov 15, 2024
ce1a72c
Update py_double_ml_rdflex.ipynb
OliverSchacht Nov 15, 2024
81b5ddf
Merge branch 'dev' into o-add-rdd
OliverSchacht Nov 15, 2024
cc4fea9
remove rdd anchor in example
OliverSchacht Nov 15, 2024
0d93f97
clear outputs
OliverSchacht Nov 18, 2024
ee970c2
small fix
OliverSchacht Nov 18, 2024
078cd00
move RDD out of DoubleML section
OliverSchacht Nov 19, 2024
4ec9471
Update example
OliverSchacht Nov 19, 2024
b657cdf
minor corrections
OliverSchacht Nov 19, 2024
d9fe934
fix link to irm model
SvenKlaassen Nov 25, 2024
d9f8acd
final comments
OliverSchacht Dec 2, 2024
0cbd6c6
Update conf.py
OliverSchacht Dec 2, 2024
2e8acd3
Merge pull request #204 from DoubleML/o-add-rdd
OliverSchacht Dec 3, 2024
58379e2
fix typos
OliverSchacht Dec 3, 2024
6c97f03
Add Release Notes for DoubleML 0.9.1
OliverSchacht Dec 15, 2024
fc0968e
Update Release Notes for 0.9.1
OliverSchacht Dec 16, 2024
f282fe0
Update Release Notes for 0.9.1
OliverSchacht Jan 6, 2025
a964082
Fix release notes 0.9.1
OliverSchacht Jan 6, 2025
fa8ccd9
Fix release notes 0.9.1
OliverSchacht Jan 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
update (still draft)
  • Loading branch information
OliverSchacht committed Oct 22, 2024
commit 2803eda81df0c65da6078abefb69fd019e2a80a9
34 changes: 27 additions & 7 deletions doc/shared/models/rdd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The LATE is identified as the difference in the conditional expectation of :math

.. math::

\theta_{\text{SRD}} = \lim_{\epsilon \to 0} \left[ \mathbb{E}[Y_i | S_i = c + \epsilon] - \mathbb{E}[Y_i | S_i = c - \epsilon] \right]
\theta_{0} = \mathbb[Y(1)-Y(0)\mid S = c]

The assumptions for identifying the LATE in a sharp RDD are

Expand All @@ -35,12 +35,32 @@ Without the use of covariates, :math:`\theta` is typically estimated by running

.. math::

\hat{\theta}_{\text{SRD}} = \sum_{i=1}^n w_i(h)Y_i,
\hat{\theta}_{\text{base}}(h) = \sum_{i=1}^n w_i(h)Y_i,

where the :math:`w_i(h)` are local linear regression weights that depend on the data through the realizations of the running variable only and :math:`h > 0` is a bandwidth.

Under standard conditions, which include that the running variable is continuously distributed, and that the bandwidth :math:`h` tends to zero at an appropriate rate, the estimator :math:`\hat{\theta}_{\text{base}}(h)` is approximately normally distributed in large samples, with bias of order :math:`h^2` and variance of order :math:`(nh)^{-1}`:

.. math::
\hat{\tau}_{\text{base}}(h) \stackrel{a}{\sim} N\left(\tau + h^2 B_{\text{base}},(nh)^{-1}V_{\text{base}}\right).

If covariates are available, they can be used to improve the accuracy of empirical RD estimates. The most popular strategy is to include them linearly and without kernel localization in the local linear regression. By simple least squares algebra, this "linear adjustment" estimator can be written as a no-covariates estimator with the covariate-adjusted outcome :math:`Y_i - Z_i^{\top} \widehat{\gamma}_h`, where :math:`\widehat{\gamma}_h` is a minimizer:

.. math::
\widehat{\tau}_{\text{lin}}(h) = \sum w_i(h)\left(Y_i - X_i^{\top} \widehat{\gamma}_h\right).

If :math:`\mathbb{E}[X_i | S_i = s]` is twice continuously differentiable around the cutoff, then the distribution of :math:`\widehat{\tau}_{\text{lin}}(h)` is similar to the one of the base estimator with potentially smaller variance termin.

As this linear adjustment might not exploit the available covariate information efficiently, DoubleML features an RDD estimator with flexible covariate adjustment based on potentially nonlinear adjustment functions :math:`\eta`. The estimator takes the following form:

.. math::
\widehat{\theta}_{\text{RDFlex}}(h; \eta) = \sum w_i(h) M_i(\eta), \quad M_i(\eta) = Y_i - \eta(Z_i).

.. math::
\widehat{\theta}_{\text{RDFlex}}(h; \eta) \stackrel{a}{\sim} N\left(\tau + h^2 B_{\text{base}}, (nh)^{-1} V(\alpha)\right).

.. math::
V(\eta) \geq V(\eta_0) \text{ for all } \eta.



Expand All @@ -52,16 +72,16 @@ In a **Fuzzy RDD**, treatment assignment is identical to the sharp RDD (:math:`T

The **LATE** is identified by comparing the jump in the probability of receiving treatment with the jump in the outcome.

The LATE for Fuzzy RDD is given by:
The parameter of interest in the Fuzzy RDD is the average treatment effect on the treated:

.. math::
\theta_{0} = \mathbb[Y(1, 1)-Y(0, 0)\mid S = c, \{i\in \text{compliers}\}]

\theta_{\text{FRD}} = \frac{\lim_{\epsilon \to 0} \left[ \mathbb{E}[Y_i | S_i = c + \epsilon] - \mathbb{E}[Y_i | S_i = c - \epsilon] \right]}{\lim_{\epsilon \to 0} \left[ \mathbb{E}[D_i | S_i = c + \epsilon] - \mathbb{E}[D_i | S_i = c - \epsilon] \right]}

The assumptions for identifying the LATE in a fuzzy RDD are
with :math:`Y_i(T_i, D_i(T_i))` being the potential outcome under the potential treatments. The assumptions for identifying the ATT in a fuzzy RDD are

- **Continuity of Potential Outcomes:** Similar to sharp RDD, the potential outcomes :math:`Y_i(1)` and :math:`Y_i(0)` must be continuous at the cutoff.

- **Continuity of Treatment Assignment Probability:** The probability of receiving treatment :math:`\mathbb{E}[D_i | S_i]` must change discontinuously at the cutoff, but there should be no other jumps in the probability.

- **Monotonicity:** There must be no "defiers", meaning individuals for whom the treatment assignment goes in the opposite direction of the score.
- **Monotonicity:** There must be no "defiers", meaning individuals for whom the treatment assignment goes in the opposite direction of the score.