diff --git a/doc/conf.py b/doc/conf.py
index 051c7795..ce2016e6 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -16,16 +16,16 @@
import doubleml
import plotly.io as pio
-sys.path.insert(0, os.path.abspath('..'))
+sys.path.insert(0, os.path.abspath(".."))
# Set the default renderer for Plotly
-pio.renderers.default = 'sphinx_gallery'
+pio.renderers.default = "sphinx_gallery"
# -- Project information -----------------------------------------------------
-project = 'DoubleML'
-copyright = '2023, Bach, P., Chernozhukov, V., Klaassen, S., Kurz, M. S., and Spindler, M.'
-author = 'Bach, P., Chernozhukov, V., Klaassen, S., Kurz, M. S., and Spindler, M.'
+project = "DoubleML"
+copyright = "2023, Bach, P., Chernozhukov, V., Klaassen, S., Kurz, M. S., and Spindler, M."
+author = "Bach, P., Chernozhukov, V., Klaassen, S., Kurz, M. S., and Spindler, M."
# -- General configuration ---------------------------------------------------
@@ -34,22 +34,22 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
- 'sphinx.ext.autodoc',
- 'sphinx.ext.autosummary',
- 'sphinx.ext.coverage',
- 'sphinx.ext.doctest',
- 'sphinx.ext.graphviz',
- 'sphinx.ext.intersphinx',
- 'sphinx.ext.mathjax',
- 'sphinx.ext.napoleon',
- 'IPython.sphinxext.ipython_console_highlighting',
- 'IPython.sphinxext.ipython_directive',
- 'matplotlib.sphinxext.plot_directive',
- 'nbsphinx',
- 'sphinx_gallery.load_style',
- 'sphinx_copybutton',
- 'sphinx_design',
- 'jupyter_sphinx',
+ "sphinx.ext.autodoc",
+ "sphinx.ext.autosummary",
+ "sphinx.ext.coverage",
+ "sphinx.ext.doctest",
+ "sphinx.ext.graphviz",
+ "sphinx.ext.intersphinx",
+ "sphinx.ext.mathjax",
+ "sphinx.ext.napoleon",
+ "IPython.sphinxext.ipython_console_highlighting",
+ "IPython.sphinxext.ipython_directive",
+ "matplotlib.sphinxext.plot_directive",
+ "nbsphinx",
+ "sphinx_gallery.load_style",
+ "sphinx_copybutton",
+ "sphinx_design",
+ "jupyter_sphinx",
]
# sphinx-panels shouldn't add bootstrap css since the pydata-sphinx-theme
@@ -57,23 +57,23 @@
panels_add_bootstrap_css = False
# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
+templates_path = ["_templates"]
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
-exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'shared/*']
+exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "shared/*"]
-master_doc = 'index'
+master_doc = "index"
-autoclass_content = 'class'
+autoclass_content = "class"
autosummary_generate = True
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
-html_theme = 'pydata_sphinx_theme'
+html_theme = "pydata_sphinx_theme"
# version for the switcher
if "dev" in doubleml.__version__:
@@ -124,26 +124,26 @@
"json_url": "https://docs.doubleml.org/dev/_static/switcher.json",
"version_match": version,
},
- "show_version_warning_banner": True,
+ "show_version_warning_banner": False, # https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/announcements.html#version-warning-banners
"check_switcher": True,
"announcement": "Interested to learn more? We offer DoubleML Trainings!",
}
-html_extra_path = ['../img/logo.png', '../img/logo_dark.png']
-html_favicon = '../img/favicon.ico'
+html_extra_path = ["../img/logo.png", "../img/logo_dark.png"]
+html_favicon = "../img/favicon.ico"
html_sidebars = {
- '**': [
- 'logo.html',
- 'search-field.html',
- 'sidebar-nav-bs.html',
+ "**": [
+ "logo.html",
+ "search-field.html",
+ "sidebar-nav-bs.html",
],
- 'index': [],
- 'intro/install': [],
- 'intro/intro': [],
- 'workflow/workflow': [],
- 'literature/literature': [],
- 'release/release': [],
+ "index": [],
+ "intro/install": [],
+ "intro/intro": [],
+ "workflow/workflow": [],
+ "literature/literature": [],
+ "release/release": [],
}
html_context = {
@@ -156,25 +156,25 @@
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-html_css_files = ['css/custom.css']
+html_static_path = ["_static"]
+html_css_files = ["css/custom.css"]
# -- Extension configuration -------------------------------------------------
nbsphinx_thumbnails = {
- 'examples/py_double_ml_sensitivity': '_static/sensitivity_example_nb.png',
- 'examples/py_double_ml_gate_sensitivity': '_static/sensitivity_example_nb.png',
- 'examples/py_double_ml_firststage': '_static/firststage_example_nb.png',
- 'examples/py_double_ml_basic_iv': '_static/basic_iv_example_nb.png',
- 'examples/py_double_ml_robust_iv': '_static/basic_iv_example_nb.png',
- 'examples/R_double_ml_basic_iv': '_static/basic_iv_example_nb.png',
- 'examples/py_double_ml_robust_iv': '_static/robust_iv_example_nb.png',
- 'examples/py_double_ml_ssm': '_static/ssm_example_nb.svg',
- 'examples/R_double_ml_ssm': '_static/ssm_example_nb.svg',
- 'examples/py_double_ml_sensitivity_booking': '_static/dag_usecase_revised.png',
+ "examples/py_double_ml_sensitivity": "_static/sensitivity_example_nb.png",
+ "examples/py_double_ml_gate_sensitivity": "_static/sensitivity_example_nb.png",
+ "examples/py_double_ml_firststage": "_static/firststage_example_nb.png",
+ "examples/py_double_ml_basic_iv": "_static/basic_iv_example_nb.png",
+ "examples/py_double_ml_robust_iv": "_static/basic_iv_example_nb.png",
+ "examples/R_double_ml_basic_iv": "_static/basic_iv_example_nb.png",
+ "examples/py_double_ml_robust_iv": "_static/robust_iv_example_nb.png",
+ "examples/py_double_ml_ssm": "_static/ssm_example_nb.svg",
+ "examples/R_double_ml_ssm": "_static/ssm_example_nb.svg",
+ "examples/py_double_ml_sensitivity_booking": "_static/dag_usecase_revised.png",
}
-copybutton_prompt_text = r'>>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: | {2,5}\.\.\.\.:'
+copybutton_prompt_text = r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: | {2,5}\.\.\.\.:"
copybutton_prompt_is_regexp = True
# config of sphinx gallery for examples
@@ -195,86 +195,86 @@
# intersphinx configuration
intersphinx_mapping = {
- 'python': ('https://docs.python.org/{.major}'.format(sys.version_info), None),
- 'sklearn': ('https://scikit-learn.org/stable/', None),
- 'numpy': ('https://numpy.org/doc/stable/', None),
- 'pandas': ('https://pandas.pydata.org/pandas-docs/stable/', None),
- 'statsmodels': ('https://www.statsmodels.org/stable/', None),
+ "python": ("https://docs.python.org/{.major}".format(sys.version_info), None),
+ "sklearn": ("https://scikit-learn.org/stable/", None),
+ "numpy": ("https://numpy.org/doc/stable/", None),
+ "pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None),
+ "statsmodels": ("https://www.statsmodels.org/stable/", None),
}
linkcheck_ignore = [
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1093/ectj/utaa001',
+ "https://doi.org/10.1093/ectj/utaa001",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1111/ectj.12097',
+ "https://doi.org/10.1111/ectj.12097",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.2307/2171802',
+ "https://doi.org/10.2307/2171802",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.2307/1912705',
+ "https://doi.org/10.2307/1912705",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1093/ectj/utaa027',
+ "https://doi.org/10.1093/ectj/utaa027",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1111/rssb.12026',
+ "https://doi.org/10.1111/rssb.12026",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1111/rssa.12623',
+ "https://doi.org/10.1111/rssa.12623",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1146/annurev-economics-012315-015826',
+ "https://doi.org/10.1146/annurev-economics-012315-015826",
# Valid DOI, Causes 418 Client Error: unknown for url:...
- 'https://doi.org/10.1109/TIT.2014.2343629',
+ "https://doi.org/10.1109/TIT.2014.2343629",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1093/ectj/utaa001',
+ "https://doi.org/10.1093/ectj/utaa001",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1111/0034-6527.00321',
+ "https://doi.org/10.1111/0034-6527.00321",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1016/j.jeconom.2020.06.003',
+ "https://doi.org/10.1016/j.jeconom.2020.06.003",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1080/07350015.2021.1895815',
+ "https://doi.org/10.1080/07350015.2021.1895815",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1198/jbes.2010.07136',
+ "https://doi.org/10.1198/jbes.2010.07136",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1111/rssb.12348',
+ "https://doi.org/10.1111/rssb.12348",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1145/3460231.3474231',
+ "https://doi.org/10.1145/3460231.3474231",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://dl.acm.org/doi/10.1145/3447545.3451181',
+ "https://dl.acm.org/doi/10.1145/3447545.3451181",
# Pipelines notebook has to be reworked
- 'https://mlr3book.mlr-org.com/pipelines.html',
+ "https://mlr3book.mlr-org.com/pipelines.html",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1080/07350015.2023.2271071',
+ "https://doi.org/10.1080/07350015.2023.2271071",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1093/restud/rdt044',
+ "https://doi.org/10.1093/restud/rdt044",
# Valid DOI; 'Connection aborted.', RemoteDisconnected ...
- 'https://CRAN.R-project.org/package=mlr3learners',
+ "https://CRAN.R-project.org/package=mlr3learners",
# Valid DOI (error not replicable), Causes 404 Client Error: Not Found for url:...
- 'https://doi.org/10.1214/14-AOS1204',
+ "https://doi.org/10.1214/14-AOS1204",
# Valid DOI (error not replicable), Causes 404 Client Error: Not Found for url:...
- 'https://doi.org/10.1214/14-AOS1221',
+ "https://doi.org/10.1214/14-AOS1221",
# Valid DOI (error not replicable), Causes 404 Client Error: Not Found for url:...
- 'https://doi.org/10.1214/17-AOS1671',
+ "https://doi.org/10.1214/17-AOS1671",
# Valid DOI (error not replicable), Causes 404 Client Error: Not Found for url:...
- 'https://dx.doi.org/10.1214/13-AOS1161',
+ "https://dx.doi.org/10.1214/13-AOS1161",
# Valid DOI (error not replicable), Causes 404 Client Error: Not Found for url:...
- 'https://dx.doi.org/10.1214/14-AOS1230',
+ "https://dx.doi.org/10.1214/14-AOS1230",
# Valid URL Failed to establish a new connection: [Errno 111] Connection refused' ...
- 'https://glmnet.stanford.edu/',
+ "https://glmnet.stanford.edu/",
# Valid URL Failed to establish a new connection: [Errno 111] Connection refused' ...
- 'https://glmnet.stanford.edu/index.html',
+ "https://glmnet.stanford.edu/index.html",
# Valid URL Failed to establish a new connection: [Errno 111] Connection refused' ...
- 'https://glmnet.stanford.edu/reference/cv.glmnet.html',
+ "https://glmnet.stanford.edu/reference/cv.glmnet.html",
# Valid URL (error not replicable), Causes 409 Client Error: Too Many Requests for url
- 'http://dx.doi.org/10.2139/ssrn.3619201',
+ "http://dx.doi.org/10.2139/ssrn.3619201",
# Valid URL, Causes ConnectTimeoutError
- 'https://folia.unifr.ch/global/documents/306524',
+ "https://folia.unifr.ch/global/documents/306524",
# Valid DOI; Causes 403 Client Error: Forbidden for url:...
- 'https://doi.org/10.1146/annurev-economics-051520-021409',
+ "https://doi.org/10.1146/annurev-economics-051520-021409",
# Valdi DOI; Causes 504 Server Error: Gateway Time-out for ...
- 'https://doi.org/10.1017/CBO9781139060035.008'
+ "https://doi.org/10.1017/CBO9781139060035.008",
]
# To execute R code via jupyter-execute one needs to install the R kernel for jupyter
# https://github.com/IRkernel/IRkernel
-jupyter_execute_default_kernel = 'ir'
+jupyter_execute_default_kernel = "ir"
jupyter_sphinx_linenos = False
# option to disable the execution of notebooks
diff --git a/doc/examples/R_double_ml_did.ipynb b/doc/examples/R_double_ml_did.ipynb
index 385c7978..6859e8e7 100644
--- a/doc/examples/R_double_ml_did.ipynb
+++ b/doc/examples/R_double_ml_did.ipynb
@@ -492,7 +492,7 @@
"\n",
"We'd like to thank the authors of the `did` package for R for maintaining a flexible interface for multi-period DiD models.\n",
"\n",
- "We'd like to note that the implementation presented is here is very similar to the one implemented in the Python package. For more details, we would like to reference to the [DiD](https://docs.doubleml.org/stable/examples/py_double_ml_did.html) and [pretesting](https://docs.doubleml.org/stable/examples/py_double_ml_did_pretest.html) examples in Python."
+ "We'd like to note that the implementation presented is here is very similar to the one implemented in the Python package. For more details, we would like to reference to the [DiD](https://docs.doubleml.org/stable/examples/index.html#difference-in-differences) examples in Python."
]
},
{
diff --git a/doc/examples/py_double_ml_apo.ipynb b/doc/examples/py_double_ml_apo.ipynb
index 1f9925fc..27b21a25 100644
--- a/doc/examples/py_double_ml_apo.ipynb
+++ b/doc/examples/py_double_ml_apo.ipynb
@@ -171,7 +171,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "As for all [DoubleML](https://docs.doubleml.org/stable/index.html) models, we specify a [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLData.html#doubleml.DoubleMLData) object to handle the data."
+ "As for all [DoubleML](https://docs.doubleml.org/stable/index.html) models, we specify a [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.data.DoubleMLData.html) object to handle the data."
]
},
{
diff --git a/doc/examples/py_double_ml_cate.ipynb b/doc/examples/py_double_ml_cate.ipynb
index a6d4d2f6..0934980f 100644
--- a/doc/examples/py_double_ml_cate.ipynb
+++ b/doc/examples/py_double_ml_cate.ipynb
@@ -99,7 +99,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Next, define the learners for the nuisance functions and fit the [IRM Model](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLIRM.html). Remark that linear learners would usually be optimal due to the data generating process."
+ "Next, define the learners for the nuisance functions and fit the [IRM Model](https://docs.doubleml.org/stable/guide/models.html#interactive-regression-models-irm). Remark that linear learners would usually be optimal due to the data generating process."
]
},
{
@@ -261,7 +261,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "As univariate example estimate the [IRM Model](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLIRM.html)."
+ "As univariate example estimate the [IRM Model](https://docs.doubleml.org/stable/guide/models.html#interactive-regression-models-irm)."
]
},
{
diff --git a/doc/examples/py_double_ml_cate_plr.ipynb b/doc/examples/py_double_ml_cate_plr.ipynb
index 5293794b..dfe7321e 100644
--- a/doc/examples/py_double_ml_cate_plr.ipynb
+++ b/doc/examples/py_double_ml_cate_plr.ipynb
@@ -95,7 +95,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Next, define the learners for the nuisance functions and fit the [PLR Model](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLPLR.html). Remark that linear learners would usually be optimal due to the data generating process."
+ "Next, define the learners for the nuisance functions and fit the [PLR Model](https://docs.doubleml.org/stable/guide/models.html#partially-linear-models-plm). Remark that linear learners would usually be optimal due to the data generating process."
]
},
{
@@ -255,7 +255,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "As univariate example estimate the [PLR Model](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLPLR.html)."
+ "As univariate example estimate the [PLR Model](https://docs.doubleml.org/stable/guide/models.html#partially-linear-regression-model-plr)."
]
},
{
diff --git a/doc/examples/py_double_ml_cvar.ipynb b/doc/examples/py_double_ml_cvar.ipynb
index fb1e194c..6a4430b6 100644
--- a/doc/examples/py_double_ml_cvar.ipynb
+++ b/doc/examples/py_double_ml_cvar.ipynb
@@ -145,7 +145,7 @@
"collapsed": false
},
"source": [
- "Let us generate $n=5000$ observations and convert them to a [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLData.html) object."
+ "Let us generate $n=5000$ observations and convert them to a [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.data.DoubleMLData.html) object."
]
},
{
diff --git a/doc/examples/py_double_ml_multiway_cluster.ipynb b/doc/examples/py_double_ml_multiway_cluster.ipynb
index 82db9b26..3ec7a89e 100644
--- a/doc/examples/py_double_ml_multiway_cluster.ipynb
+++ b/doc/examples/py_double_ml_multiway_cluster.ipynb
@@ -150,7 +150,7 @@
},
"source": [
"### Data-Backend for Cluster Data\n",
- "The implementation of cluster robust double machine learning is based on a special data-backend called [DoubleMLClusterData](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLClusterData.html#doubleml.DoubleMLClusterData). As compared to the standard data-backend [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLData.html), users can specify the clustering variables during instantiation of a [DoubleMLClusterData](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLClusterData.html#doubleml.DoubleMLClusterData) object. The estimation framework will subsequently account for the provided clustering options."
+ "The implementation of cluster robust double machine learning is based on a special data-backend called [DoubleMLClusterData](https://docs.doubleml.org/stable/api/generated/doubleml.data.DoubleMLClusterData.html). As compared to the standard data-backend [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.data.DoubleMLData.html), users can specify the clustering variables during instantiation of a [DoubleMLClusterData](https://docs.doubleml.org/stable/api/generated/doubleml.data.DoubleMLClusterData.html) object. The estimation framework will subsequently account for the provided clustering options."
]
},
{
diff --git a/doc/examples/py_double_ml_pq.ipynb b/doc/examples/py_double_ml_pq.ipynb
index 8fb0b7a8..ed7f41cb 100644
--- a/doc/examples/py_double_ml_pq.ipynb
+++ b/doc/examples/py_double_ml_pq.ipynb
@@ -155,7 +155,7 @@
"collapsed": false
},
"source": [
- "Let us generate $n=5000$ observations and convert them to a [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLData.html) object."
+ "Let us generate $n=5000$ observations and convert them to a [DoubleMLData](https://docs.doubleml.org/stable/guide/data_backend.html#doublemldata) object."
]
},
{
@@ -740,7 +740,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Let us generate $n=10000$ observations and convert them to a [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLData.html) object."
+ "Let us generate $n=10000$ observations and convert them to a [DoubleMLData](https://docs.doubleml.org/stable/guide/data_backend.html#doublemldata) object."
]
},
{
diff --git a/doc/examples/py_double_ml_robust_iv.ipynb b/doc/examples/py_double_ml_robust_iv.ipynb
index 40c47eb1..cfadfc57 100644
--- a/doc/examples/py_double_ml_robust_iv.ipynb
+++ b/doc/examples/py_double_ml_robust_iv.ipynb
@@ -207,6 +207,7 @@
"id": "946cbbcf",
"metadata": {},
"source": [
+ "- Chernozhukov, V. & Hansen, C. & Kallus, N. & Spindler, M. & Syrgkanis, V. (2024): Applied Causal Inference Powered by ML and AI; Chapter 13. CausalML-book.org; arXiv:2403.02467.\n",
"- 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",
diff --git a/doc/examples/py_double_ml_sensitivity.ipynb b/doc/examples/py_double_ml_sensitivity.ipynb
index 1eca9aca..a4cc9b90 100644
--- a/doc/examples/py_double_ml_sensitivity.ipynb
+++ b/doc/examples/py_double_ml_sensitivity.ipynb
@@ -255,7 +255,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Use basic random forests to estimate the nuisance elements and fit a [DoubleMLPLR](https://docs.doubleml.org/stable/api/generated/doubleml.DoubleMLPLR.html) model."
+ "Use basic random forests to estimate the nuisance elements and fit a [DoubleMLPLR](https://docs.doubleml.org/stable/api/generated/doubleml.plm.DoubleMLPLR.html#doubleml.plm.DoubleMLPLR) model."
]
},
{
@@ -500,7 +500,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.2"
+ "version": "3.12.8"
},
"orig_nbformat": 4
},
diff --git a/doc/literature/literature.rst b/doc/literature/literature.rst
index e9fb61a1..bce48026 100644
--- a/doc/literature/literature.rst
+++ b/doc/literature/literature.rst
@@ -8,7 +8,7 @@ Double Machine Learning Literature
.. grid-item-card::
:text-align: left
- .. dropdown:: Main Reference
+ .. dropdown:: Main References
:class-title: sd-bg-primary sd-font-weight-bold
:open:
@@ -18,6 +18,12 @@ Double Machine Learning Literature
:octicon:`link` :bdg-link-dark:`URL `
:bdg-link-dark:`arXiv `
+ - Victor Chernozhukov, Christian Hansen, Nathan Kallus, Martin Spindler, Vasilis Syrgkanis |br|
+ **Applied Causal Inference Powered by ML and AI** |br|
+ *CausalML-book.org, 2024* |br|
+ :octicon:`link` :bdg-link-dark:`URL `
+ :bdg-link-dark:`arXiv `
+
.. dropdown:: Software for double machine learning
:class-title: sd-bg-primary sd-font-weight-bold
diff --git a/doc/workflow/workflow.rst b/doc/workflow/workflow.rst
index 8e201e02..652a4c89 100644
--- a/doc/workflow/workflow.rst
+++ b/doc/workflow/workflow.rst
@@ -199,7 +199,7 @@ We use a regression learner for the continuous outcome variable net financial as
In Step 4., we initialize and parametrize the model object which will later be used to perform the estimation.
-We initialize a `DoubleMLPLR (Python) `_ /
+We initialize a `DoubleMLPLR (Python) `_ /
`DoubleMLPLR (R) `_
object using the previously generated data-backend. Moreover, we specify the resampling
(= the number of repetitions and folds for :ref:`repeated cross-fitting `),