Skip to content

Commit bfa7482

Browse files
committed
Merge branch 'main' into s-notebook-CATE
2 parents bc82d00 + 9d56863 commit bfa7482

File tree

8 files changed

+79
-59
lines changed

8 files changed

+79
-59
lines changed

.github/workflows/deploy_docu_dev.yml

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,19 @@ jobs:
1818

1919
steps:
2020
- name: Check out the repo containing the docu source
21-
uses: actions/checkout@v2
21+
uses: actions/checkout@v3
2222

2323
- name: Check out the repo containing the python pkg DoubleML (dev)
24-
uses: actions/checkout@v2
24+
uses: actions/checkout@v3
2525
with:
2626
repository: DoubleML/doubleml-for-py
2727
path: doubleml-for-py
2828

29-
- name: Install SSH Client for deploying the docu to github pages
30-
uses: webfactory/[email protected]
31-
with:
32-
ssh-private-key: ${{ secrets.DEPLOY_KEY }}
33-
3429
- name: Install graphviz
3530
run: sudo apt-get install graphviz
3631

3732
- name: Install python
38-
uses: actions/setup-python@v2
33+
uses: actions/setup-python@v4
3934
with:
4035
python-version: '3.8'
4136
- name: Install dependencies and the python package
@@ -69,7 +64,7 @@ jobs:
6964
shell: Rscript {0}
7065

7166
- name: Cache R packages
72-
uses: actions/cache@v2
67+
uses: actions/cache@v3
7368
with:
7469
path: ${{ env.R_LIBS_USER }}
7570
key: doubleml-user-guide-dev-${{ hashFiles('.github/R-version') }}
@@ -87,13 +82,13 @@ jobs:
8782
make -C doc html # build docu
8883
8984
- name: Deploy to dev
90-
uses: JamesIves/github-pages-deploy-action@3.7.1
85+
uses: JamesIves/github-pages-deploy-action@v4
9186
with:
92-
REPOSITORY_NAME: DoubleML/doubleml.github.io
93-
BRANCH: main
94-
FOLDER: doc/_build/html
95-
TARGET_FOLDER: dev
96-
GIT_CONFIG_NAME: DoubleML Deploy Bot
97-
GIT_CONFIG_EMAIL: [email protected]
98-
CLEAN: true
99-
SSH: true
87+
repository-name: DoubleML/doubleml.github.io
88+
branch: main
89+
folder: doc/_build/html
90+
target-folder: dev
91+
git-config-name: DoubleML Deploy Bot
92+
git-config-email: [email protected]
93+
clean: true
94+
ssh-key: ${{ secrets.DEPLOY_KEY }}

.github/workflows/deploy_docu_stable.yml

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,13 @@ jobs:
1313

1414
steps:
1515
- name: Check out the repo containing the docu source
16-
uses: actions/checkout@v2
17-
18-
- name: Install SSH Client for deploying the docu to github pages
19-
uses: webfactory/[email protected]
20-
with:
21-
ssh-private-key: ${{ secrets.DEPLOY_KEY }}
16+
uses: actions/checkout@v3
2217

2318
- name: Install graphviz
2419
run: sudo apt-get install graphviz
2520

2621
- name: Install python
27-
uses: actions/setup-python@v2
22+
uses: actions/setup-python@v4
2823
with:
2924
python-version: '3.8'
3025
- name: Install dependencies and the python package
@@ -55,7 +50,7 @@ jobs:
5550
shell: Rscript {0}
5651

5752
- name: Cache R packages
58-
uses: actions/cache@v2
53+
uses: actions/cache@v3
5954
with:
6055
path: ${{ env.R_LIBS_USER }}
6156
key: doubleml-user-guide-stable-${{ hashFiles('.github/R-version') }}
@@ -73,13 +68,13 @@ jobs:
7368
make -C doc html # build docu
7469
7570
- name: Deploy to stable
76-
uses: JamesIves/github-pages-deploy-action@3.7.1
71+
uses: JamesIves/github-pages-deploy-action@v4
7772
with:
78-
REPOSITORY_NAME: DoubleML/doubleml.github.io
79-
BRANCH: main
80-
FOLDER: doc/_build/html
81-
TARGET_FOLDER: stable
82-
GIT_CONFIG_NAME: DoubleML Deploy Bot
83-
GIT_CONFIG_EMAIL: [email protected]
84-
CLEAN: true
85-
SSH: true
73+
repository-name: DoubleML/doubleml.github.io
74+
branch: main
75+
folder: doc/_build/html
76+
target-folder: stable
77+
git-config-name: DoubleML Deploy Bot
78+
git-config-email: [email protected]
79+
clean: true
80+
ssh-key: ${{ secrets.DEPLOY_KEY }}

.github/workflows/test_build_docu_dev.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,18 @@ jobs:
3232

3333
steps:
3434
- name: Check out the repo containing the docu source
35-
uses: actions/checkout@v2
35+
uses: actions/checkout@v3
3636

3737
- name: Check out the repo containing the python pkg DoubleML (dev)
3838
if: ${{ github.event_name != 'workflow_dispatch' }}
39-
uses: actions/checkout@v2
39+
uses: actions/checkout@v3
4040
with:
4141
repository: DoubleML/doubleml-for-py
4242
path: doubleml-for-py
4343

4444
- name: Check out the repo containing the python pkg DoubleML (dev)
4545
if: ${{ github.event_name == 'workflow_dispatch' }}
46-
uses: actions/checkout@v2
46+
uses: actions/checkout@v3
4747
with:
4848
repository: DoubleML/doubleml-for-py
4949
path: doubleml-for-py
@@ -53,7 +53,7 @@ jobs:
5353
run: sudo apt-get install graphviz
5454

5555
- name: Install python
56-
uses: actions/setup-python@v2
56+
uses: actions/setup-python@v4
5757
with:
5858
python-version: '3.8'
5959
- name: Install dependencies and the python package
@@ -87,7 +87,7 @@ jobs:
8787
shell: Rscript {0}
8888

8989
- name: Cache R packages
90-
uses: actions/cache@v2
90+
uses: actions/cache@v3
9191
with:
9292
path: ${{ env.R_LIBS_USER }}
9393
key: doubleml-test-build-dev-${{ hashFiles('.github/R-version') }}
@@ -119,7 +119,7 @@ jobs:
119119
make -C doc linkcheck
120120
121121
- name: Upload html artifacts
122-
uses: actions/upload-artifact@v2
122+
uses: actions/upload-artifact@v3
123123
with:
124124
name: build_html
125125
path: doc/_build/html/

.github/workflows/test_build_docu_released.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ jobs:
2121

2222
steps:
2323
- name: Check out the repo containing the docu source
24-
uses: actions/checkout@v2
24+
uses: actions/checkout@v3
2525

2626
- name: Install graphviz
2727
run: sudo apt-get install graphviz
2828

2929
- name: Install python
30-
uses: actions/setup-python@v2
30+
uses: actions/setup-python@v4
3131
with:
3232
python-version: '3.8'
3333
- name: Install dependencies and the python package
@@ -58,7 +58,7 @@ jobs:
5858
shell: Rscript {0}
5959

6060
- name: Cache R packages
61-
uses: actions/cache@v2
61+
uses: actions/cache@v3
6262
with:
6363
path: ${{ env.R_LIBS_USER }}
6464
key: doubleml-test-build-stable-${{ hashFiles('.github/R-version') }}
@@ -80,7 +80,7 @@ jobs:
8080
make -C doc linkcheck
8181
8282
- name: Upload html artifacts
83-
uses: actions/upload-artifact@v2
83+
uses: actions/upload-artifact@v3
8484
with:
8585
name: build_html
8686
path: doc/_build/html/

doc/guide/basics.rst

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ other half of observations indexed with :math:`i \in I`
224224
}
225225

226226
g_nonorth = ggplot(data.frame(theta_rescaled=(theta_nonorth - alpha)/se_nonorth)) +
227-
geom_histogram(aes(y=..density.., x=theta_rescaled, colour = "Non-orthogonal ML", fill="Non-orthogonal ML"),
227+
geom_histogram(aes(y=after_stat(density), x=theta_rescaled, colour = "Non-orthogonal ML", fill="Non-orthogonal ML"),
228228
bins = 30, alpha = 0.3) +
229229
geom_vline(aes(xintercept = 0), col = "black") +
230230
suppressWarnings(geom_function(fun = dnorm, aes(colour = "N(0, 1)", fill="N(0, 1)"))) +
@@ -348,7 +348,7 @@ orthogonalized regressor :math:`V = D - m(X)`. We then use the final estimate
348348
}
349349

350350
g_nosplit = ggplot(data.frame(theta_rescaled=(theta_orth_nosplit - alpha)/se_orth_nosplit), aes(x = theta_rescaled)) +
351-
geom_histogram(aes(y=..density.., x=theta_rescaled, colour = "Double ML (no sample splitting)", fill="Double ML (no sample splitting)"),
351+
geom_histogram(aes(y=after_stat(density), x=theta_rescaled, colour = "Double ML (no sample splitting)", fill="Double ML (no sample splitting)"),
352352
bins = 30, alpha = 0.3) +
353353
geom_vline(aes(xintercept = 0), col = "black") +
354354
suppressWarnings(geom_function(fun = dnorm, aes(colour = "N(0, 1)", fill="N(0, 1)"))) +
@@ -452,7 +452,7 @@ Cross-fitting performs well empirically because the entire sample can be used fo
452452
}
453453

454454
g_dml = ggplot(data.frame(theta_rescaled=(theta_dml - alpha)/se_dml), aes(x = theta_rescaled)) +
455-
geom_histogram(aes(y=..density.., x=theta_rescaled, colour = "Double ML with cross-fitting", fill="Double ML with cross-fitting"),
455+
geom_histogram(aes(y=after_stat(density), x=theta_rescaled, colour = "Double ML with cross-fitting", fill="Double ML with cross-fitting"),
456456
bins = 30, alpha = 0.3) +
457457
geom_vline(aes(xintercept = 0), col = "black") +
458458
suppressWarnings(geom_function(fun = dnorm, aes(colour = "N(0, 1)", fill="N(0, 1)"))) +
@@ -525,11 +525,11 @@ The third term :math:`c^*` vanishes in probability if sample splitting is applie
525525
g_all = ggplot(data.frame(t_nonorth=(theta_nonorth - alpha)/se_nonorth,
526526
t_orth_nosplit=(theta_orth_nosplit - alpha)/se_orth_nosplit,
527527
t_dml=(theta_dml - alpha)/se_dml)) +
528-
geom_histogram(aes(x = t_nonorth, y=..density.., colour = "Non-orthogonal ML", fill="Non-orthogonal ML"),
528+
geom_histogram(aes(x = t_nonorth, y=after_stat(density), colour = "Non-orthogonal ML", fill="Non-orthogonal ML"),
529529
bins = 30, alpha = 0.3) +
530-
geom_histogram(aes(x = t_orth_nosplit, y=..density.., colour = "Double ML (no sample splitting)", fill="Double ML (no sample splitting)"),
530+
geom_histogram(aes(x = t_orth_nosplit, y=after_stat(density), colour = "Double ML (no sample splitting)", fill="Double ML (no sample splitting)"),
531531
bins = 30, alpha = 0.3) +
532-
geom_histogram(aes(x = t_dml, y=..density.., colour = "Double ML with cross-fitting", fill="Double ML with cross-fitting"),
532+
geom_histogram(aes(x = t_dml, y=after_stat(density), colour = "Double ML with cross-fitting", fill="Double ML with cross-fitting"),
533533
bins = 30, alpha = 0.3) +
534534
geom_vline(aes(xintercept = 0), col = "black") +
535535
suppressWarnings(geom_function(fun = dnorm, aes(colour = "N(0, 1)", fill="N(0, 1)"))) +
@@ -643,7 +643,7 @@ estimate :math:`\theta_0` without sample splitting. Again we observe a bias from
643643
}
644644

645645
g_nosplit = ggplot(data.frame(theta_rescaled=(theta_orth_po_nosplit - alpha)/se_orth_po_nosplit), aes(x = theta_rescaled)) +
646-
geom_histogram(aes(y=..density.., x=theta_rescaled, colour = "Double ML (no sample splitting)", fill="Double ML (no sample splitting)"),
646+
geom_histogram(aes(y=after_stat(density), x=theta_rescaled, colour = "Double ML (no sample splitting)", fill="Double ML (no sample splitting)"),
647647
bins = 30, alpha = 0.3) +
648648
geom_vline(aes(xintercept = 0), col = "black") +
649649
suppressWarnings(geom_function(fun = dnorm, aes(colour = "N(0, 1)", fill="N(0, 1)"))) +
@@ -735,7 +735,7 @@ Using sample splitting, overcomes the bias induced by overfitting.
735735
}
736736

737737
g_dml = ggplot(data.frame(theta_rescaled=(theta_dml_po - alpha)/se_dml_po), aes(x = theta_rescaled)) +
738-
geom_histogram(aes(y=..density.., x=theta_rescaled, colour = "Double ML with cross-fitting", fill="Double ML with cross-fitting"),
738+
geom_histogram(aes(y=after_stat(density), x=theta_rescaled, colour = "Double ML with cross-fitting", fill="Double ML with cross-fitting"),
739739
bins = 30, alpha = 0.3) +
740740
geom_vline(aes(xintercept = 0), col = "black") +
741741
suppressWarnings(geom_function(fun = dnorm, aes(colour = "N(0, 1)", fill="N(0, 1)"))) +
@@ -780,11 +780,11 @@ Using sample splitting, overcomes the bias induced by overfitting.
780780
g_all = ggplot(data.frame(t_nonorth=(theta_nonorth - alpha)/se_nonorth,
781781
t_orth_nosplit=(theta_orth_po_nosplit - alpha)/se_orth_po_nosplit,
782782
t_dml=(theta_dml_po - alpha)/se_dml_po)) +
783-
geom_histogram(aes(x = t_nonorth, y=..density.., colour = "Non-orthogonal ML", fill="Non-orthogonal ML"),
783+
geom_histogram(aes(x = t_nonorth, y=after_stat(density), colour = "Non-orthogonal ML", fill="Non-orthogonal ML"),
784784
bins = 30, alpha = 0.3) +
785-
geom_histogram(aes(x = t_orth_nosplit, y=..density.., colour = "Double ML (no sample splitting)", fill="Double ML (no sample splitting)"),
785+
geom_histogram(aes(x = t_orth_nosplit, y=after_stat(density), colour = "Double ML (no sample splitting)", fill="Double ML (no sample splitting)"),
786786
bins = 30, alpha = 0.3) +
787-
geom_histogram(aes(x = t_dml, y=..density.., colour = "Double ML with cross-fitting", fill="Double ML with cross-fitting"),
787+
geom_histogram(aes(x = t_dml, y=after_stat(density), colour = "Double ML with cross-fitting", fill="Double ML with cross-fitting"),
788788
bins = 30, alpha = 0.3) +
789789
geom_vline(aes(xintercept = 0), col = "black") +
790790
suppressWarnings(geom_function(fun = dnorm, aes(colour = "N(0, 1)", fill="N(0, 1)"))) +

doc/guide/learners.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ The minimum requirement for a learner to be used for nuisance models in the :ref
189189
To specify a specific learner in :ref:`DoubleML <doubleml_package>` users can pass objects of the class
190190
`Learner <https://mlr3.mlr-org.com/reference/Learner.html>`_. A fast way to construct these objects is to use the
191191
`mlr3 <https://mlr3.mlr-org.com/>`_ function `lrn() <https://mlr3.mlr-org.com/reference/mlr_sugar.html>`_.
192-
An introduction to learners in `mlr3 <https://mlr3.mlr-org.com/>`_ is provided in the `chapter on learners of the mlr3 book <https://mlr3book.mlr-org.com/basics.html#learners>`_.
192+
An introduction to learners in `mlr3 <https://mlr3.mlr-org.com/>`_ is provided in the `chapter on learners of the mlr3 book <https://mlr3book.mlr-org.com/basics.html#sec-learners>`_.
193193
* It is also possible to pass learners that have been constructed from a pipeline with the `mlr3pipelines <https://mlr3pipelines.mlr-org.com/>`_
194194
package.
195195
* The models `DoubleML::DoubleMLIRM <https://docs.doubleml.org/r/stable/reference/DoubleMLIRM.html>`_ and
@@ -420,7 +420,7 @@ The entries in the list specify options during parameter tuning with `mlr3tuning
420420
`Tuner <https://mlr3tuning.mlr-org.com/reference/Tuner.html>`_ and specifies the tuning algorithm.
421421
Alternatively, ``algorithm`` can be a ``character()`` that is used as an argument in the wrapper
422422
`mlr3tuning <https://mlr3tuning.mlr-org.com/>`_ call
423-
`tnr(algorithm) <https://mlr3tuning.mlr-org.com/reference/mlr_sugar.html>`_.
423+
`tnr(algorithm) <https://mlr3tuning.mlr-org.com/reference/tnr.html>`_.
424424
`The corresponding chapter in the mlr3book <https://mlr3book.mlr-org.com/optimization.html#sec-model-tuning>`_ illustrates
425425
how the `Tuner <https://mlr3tuning.mlr-org.com/reference/Tuner.html>`_ class supports grid search, random search,
426426
generalized simulated annealing and non-linear optimization.

doc/intro/install.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ After setting up python and pip as described above use
320320

321321
.. code-block:: Bash
322322
323-
$ pip install -U DoubleML-0.5.0-py3-none-any.whl
323+
$ pip install -U DoubleML-0.5.1-py3-none-any.whl
324324
325325
Python: Building the package from source
326326
----------------------------------------

doc/release/release.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@ Release notes
55

66
.. tabbed:: Python
77

8+
**DoubleML 0.5.2**
9+
- Fix / adapted unit tests which failed in the release of 0.5.1 to conda-forge
10+
`#172 <https://github.com/DoubleML/doubleml-for-py/pull/172>`_
11+
12+
**DoubleML 0.5.1**
13+
14+
- Store estimated models for nuisance parameters
15+
`#159 <https://github.com/DoubleML/doubleml-for-py/pull/159>`_
16+
- Bug fix: Overwrite for tune method (introduced for depreciation warning) did not return the tune result
17+
`#160 <https://github.com/DoubleML/doubleml-for-py/pull/160>`_
18+
`#162 <https://github.com/DoubleML/doubleml-for-py/issues/162>`_
19+
- Maintenance
20+
`#166 <https://github.com/DoubleML/doubleml-for-py/pull/166>`_
21+
`#167 <https://github.com/DoubleML/doubleml-for-py/pull/167>`_
22+
`#168 <https://github.com/DoubleML/doubleml-for-py/pull/168>`_
23+
`#170 <https://github.com/DoubleML/doubleml-for-py/pull/170>`_
24+
825
**DoubleML 0.5.0**
926

1027
- Implement a new score function ``score = 'IV-type'`` for the PLIV model (for details see
@@ -153,6 +170,19 @@ Release notes
153170

154171
.. tabbed:: R
155172

173+
**DoubleML 0.5.2**
174+
175+
- Store estimated models for nuisance parameters
176+
`#169 <https://github.com/DoubleML/doubleml-for-r/pull/169>`_
177+
- New maintainer of the CRAN package DoubleML `@PhilippBach <https://github.com/PhilippBach>`_
178+
- Maintenance
179+
`#170 <https://github.com/DoubleML/doubleml-for-r/pull/170>`_
180+
`#173 <https://github.com/DoubleML/doubleml-for-r/pull/173>`_
181+
`#174 <https://github.com/DoubleML/doubleml-for-r/pull/174>`_
182+
`#177 <https://github.com/DoubleML/doubleml-for-r/pull/177>`_
183+
`#178 <https://github.com/DoubleML/doubleml-for-r/pull/178>`_
184+
185+
156186
**DoubleML 0.5.1**
157187

158188
- Fix a CRAN issue (html checks) by regenerating ``.Rd``-files with the newest version of ``roxygen2``.

0 commit comments

Comments
 (0)