From 1abe84dcca30eaf3b4c3b735829c91cff00e0060 Mon Sep 17 00:00:00 2001 From: Ezequiel Smucler Date: Mon, 16 Jun 2025 17:35:08 +0200 Subject: [PATCH 1/7] add reference to preprint --- doc/examples/py_double_ml_robust_iv.ipynb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/examples/py_double_ml_robust_iv.ipynb b/doc/examples/py_double_ml_robust_iv.ipynb index cfadfc57..f88cf29d 100644 --- a/doc/examples/py_double_ml_robust_iv.ipynb +++ b/doc/examples/py_double_ml_robust_iv.ipynb @@ -10,6 +10,7 @@ }, { "cell_type": "markdown", + "id": "6c070d4e", "metadata": {}, "source": [ "In this example we will show how to use the DoubleML package to obtain confidence sets for the treatment effects that are robust to weak instruments. Weak instruments are those that have a relatively weak correlation with the treatment. It is well known that in this case, standard methods to construct confidence intervals have poor properties and can have coverage much lower than the nominal value. We will assume that the reader of this notebook is already familiar with DoubleML and how it can be used to fit instrumental variable models.\n", @@ -30,6 +31,7 @@ { "cell_type": "code", "execution_count": 1, + "id": "f9e7a46f", "metadata": {}, "outputs": [], "source": [ @@ -46,6 +48,7 @@ }, { "cell_type": "markdown", + "id": "b6b976ce", "metadata": {}, "source": [ "# Running a small simulation" @@ -211,6 +214,7 @@ "- Chernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., and Hansen, C. (2018). Double/debiased machine learning for\n", "treatment and structural parameters. The Econometrics Journal, 21(1):C1–C68.\n", "- Ma, Y. (2023). Identification-robust inference for the late with high-dimensional covariates. arXiv preprint arXiv:2302.09756.\n", + "- Smucler, E., Lanni, L., Masip, D. (2025). A note on the properties of the confidence set for the local average treatment effect obtained by inverting the score test. arXiv preprint 2506.10449\n", "- Stock, J. H. and Wright, J. H. (2000). GMM with weak identification. Econometrica, 68(5):1055–1096.\n", "- Takatsu, K., Levis, A. W., Kennedy, E., Kelz, R., and Keele, L. (2023). Doubly robust machine learning for an instrumental\n", "variable study of surgical care for cholecystitis. arXiv preprint arXiv:2307.06269." From 99c474a6b036677dbdcf70e7a92659b6a6eed2c6 Mon Sep 17 00:00:00 2001 From: Ezequiel Smucler Date: Mon, 16 Jun 2025 17:37:32 +0200 Subject: [PATCH 2/7] clear outputs --- doc/examples/py_double_ml_robust_iv.ipynb | 28 +++++------------------ 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/doc/examples/py_double_ml_robust_iv.ipynb b/doc/examples/py_double_ml_robust_iv.ipynb index f88cf29d..3cf47355 100644 --- a/doc/examples/py_double_ml_robust_iv.ipynb +++ b/doc/examples/py_double_ml_robust_iv.ipynb @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "f9e7a46f", "metadata": {}, "outputs": [], @@ -64,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "82111204", "metadata": {}, "outputs": [], @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "9a347c25", "metadata": {}, "outputs": [], @@ -120,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "600b8196", "metadata": {}, "outputs": [], @@ -166,26 +166,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "86c83edc", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " DML coverage Robust coverage DML median length \\\n", - "instrument_strength \n", - "0.003 0.15 0.91 0.489567 \n", - "1.000 0.93 0.92 0.572717 \n", - "\n", - " Robust median length \n", - "instrument_strength \n", - "0.003 inf \n", - "1.000 0.582754 \n" - ] - } - ], + "outputs": [], "source": [ "results_df = pd.DataFrame(output_list)\n", "summary_df = results_df.groupby(\"instrument_strength\").agg(\n", From ce81973ffa4ce9a009a8c95529da46fd4e5a7d0f Mon Sep 17 00:00:00 2001 From: Ezequiel Smucler Date: Mon, 16 Jun 2025 17:39:00 +0200 Subject: [PATCH 3/7] rerun --- doc/examples/py_double_ml_robust_iv.ipynb | 30 +++++++++++++++++------ 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/doc/examples/py_double_ml_robust_iv.ipynb b/doc/examples/py_double_ml_robust_iv.ipynb index 3cf47355..0eef8c87 100644 --- a/doc/examples/py_double_ml_robust_iv.ipynb +++ b/doc/examples/py_double_ml_robust_iv.ipynb @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "f9e7a46f", "metadata": {}, "outputs": [], @@ -64,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "82111204", "metadata": {}, "outputs": [], @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "9a347c25", "metadata": {}, "outputs": [], @@ -120,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "600b8196", "metadata": {}, "outputs": [], @@ -166,10 +166,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "86c83edc", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " DML coverage Robust coverage DML median length \\\n", + "instrument_strength \n", + "0.003 0.15 0.91 0.489567 \n", + "1.000 0.93 0.92 0.572717 \n", + "\n", + " Robust median length \n", + "instrument_strength \n", + "0.003 inf \n", + "1.000 0.582754 \n" + ] + } + ], "source": [ "results_df = pd.DataFrame(output_list)\n", "summary_df = results_df.groupby(\"instrument_strength\").agg(\n", @@ -221,7 +237,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.13.1" } }, "nbformat": 4, From b8c56d4f8039d9c29d2d04a28b4f6aec5b500291 Mon Sep 17 00:00:00 2001 From: Sven Klaassen <47529404+SvenKlaassen@users.noreply.github.com> Date: Thu, 12 Jun 2025 21:52:46 +0200 Subject: [PATCH 4/7] clear outputs (will rerun while building docs) --- doc/examples/py_double_ml_robust_iv.ipynb | 28 +++++------------------ 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/doc/examples/py_double_ml_robust_iv.ipynb b/doc/examples/py_double_ml_robust_iv.ipynb index 0eef8c87..587db352 100644 --- a/doc/examples/py_double_ml_robust_iv.ipynb +++ b/doc/examples/py_double_ml_robust_iv.ipynb @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "f9e7a46f", "metadata": {}, "outputs": [], @@ -64,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "82111204", "metadata": {}, "outputs": [], @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "9a347c25", "metadata": {}, "outputs": [], @@ -120,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "600b8196", "metadata": {}, "outputs": [], @@ -166,26 +166,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "86c83edc", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " DML coverage Robust coverage DML median length \\\n", - "instrument_strength \n", - "0.003 0.15 0.91 0.489567 \n", - "1.000 0.93 0.92 0.572717 \n", - "\n", - " Robust median length \n", - "instrument_strength \n", - "0.003 inf \n", - "1.000 0.582754 \n" - ] - } - ], + "outputs": [], "source": [ "results_df = pd.DataFrame(output_list)\n", "summary_df = results_df.groupby(\"instrument_strength\").agg(\n", From 3eff92bafd05177c5c008a7a11c00a65c2f4543d Mon Sep 17 00:00:00 2001 From: PhilippBach Date: Fri, 13 Jun 2025 13:47:33 +0200 Subject: [PATCH 5/7] upd software citation --- doc/index.rst | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/doc/index.rst b/doc/index.rst index 28b0be27..82ca59d1 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -200,7 +200,12 @@ and `https://github.com/DoubleML/doubleml-for-r/issues `_. + +An accompanying paper to the DoubleML package for Python has been published in the Journal of Machine Learning Research. For citation, please use the following reference: Bach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2022), DoubleML - An Object-Oriented Implementation of Double Machine Learning in Python, @@ -208,12 +213,25 @@ Journal of Machine Learning Research, 23(53): 1-6, `https://www.jmlr.org/papers/v23/21-0862.html `_. +For the R package, please use the following reference: + Bach, P., Chernozhukov, V., Kurz, M. S., Spindler, M. and Klaassen, S. (2024), DoubleML - An Object-Oriented Implementation of Double Machine Learning in R, Journal of Statistical Software, 108(3): 1-56, doi:`10.18637/jss.v108.i03 `_, arXiv:`2103.09603 `_. Bibtex-entries: +.. code-block:: TeX + + @software{DoubleML, + title = {{DoubleML} -- Double Machine Learning in Python}, + author = {Bach, Philipp and Chernozhukov, Victor and Klaassen, Sven and Kurz, Malte S. and Spindler, Martin}, + year = {2024}, + version = {latest}, + url = {https://github.com/DoubleML/doubleml-for-py}, + note = {BSD-3-Clause License. Documentation: \url{https://docs.doubleml.org/stable/index.html}} + } + .. code-block:: TeX @article{DoubleML2022Python, From 1678941f3c0ef8c794e89375b7c619428d58ff07 Mon Sep 17 00:00:00 2001 From: PhilippBach Date: Fri, 13 Jun 2025 13:48:55 +0200 Subject: [PATCH 6/7] upd --- doc/index.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/index.rst b/doc/index.rst index 82ca59d1..6586a827 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -268,6 +268,9 @@ Foundation) is acknowledged – Project Number 431701914. References ---------- +Bach, P., Chernozhukov, V., Klaassen, S., Kurz, M. S., & Spindler, M. DoubleML - Double +Machine Learning in Python [Computer software]. `https://github.com/DoubleML/doubleml-for-py `_. + Bach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2022), DoubleML - An Object-Oriented Implementation of Double Machine Learning in Python, Journal of Machine Learning Research, 23(53): 1-6, From 413294a471617d15573850db645a251d71e83fb6 Mon Sep 17 00:00:00 2001 From: SvenKlaassen Date: Mon, 16 Jun 2025 05:54:34 +0000 Subject: [PATCH 7/7] update gama citation --- doc/examples/py_double_ml_meets_flaml.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/examples/py_double_ml_meets_flaml.ipynb b/doc/examples/py_double_ml_meets_flaml.ipynb index f85126b4..041b1181 100644 --- a/doc/examples/py_double_ml_meets_flaml.ipynb +++ b/doc/examples/py_double_ml_meets_flaml.ipynb @@ -10,7 +10,7 @@ "\n", "This notebook will use [FLAML](https://github.com/microsoft/FLAML), but there are also many other AutoML frameworks. Particularly useful for DoubleML are packages that provide some way to export the model in `sklearn`-style.\n", "\n", - "Examples are: [TPOT](https://epistasislab.github.io/tpot/), [autosklearn](https://automl.github.io/auto-sklearn/master/), [H20](https://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html) or [Gama](https://openml-labs.github.io/gama/master/)." + "Examples are: [TPOT](https://epistasislab.github.io/tpot/), [autosklearn](https://automl.github.io/auto-sklearn/master/), [H20](https://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html) or [Gama](https://github.com/amore-labs/gama)." ] }, {