The R package **DoubleML** provides an implementation of the double / debiased machine learning framework of Chernozhukov et al. (2018). It is built on top of mlr3 and the mlr3 ecosystem (Lang et al., 2019).

Note that the R package was developed together with a python twin based on scikit-learn. The python package is also available on GitHub and .

Documentation of functions in R: https://docs.doubleml.org/r/stable/reference/index.html

User guide: https://docs.doubleml.org

**DoubleML** is currently maintained by `@MalteKurz`

and `@PhilippBach`

.

Double / debiased machine learning framework of Chernozhukov et al. (2018) for

- Partially linear regression models (PLR)
- Partially linear IV regression models (PLIV)
- Interactive regression models (IRM)
- Interactive IV regression models (IIVM)

The object-oriented implementation of **DoubleML** that is based on the R6 package for R is very flexible. The model classes `DoubleMLPLR`

, `DoubleMLPLIV`

, `DoubleMLIRM`

and `DoubleIIVM`

implement the estimation of the nuisance functions via machine learning methods and the computation of the Neyman orthogonal score function. All other functionalities are implemented in the abstract base class `DoubleML`

. In particular functionalities to estimate double machine learning models and to perform statistical inference via the methods `fit`

, `bootstrap`

, `confint`

, `p_adjust`

and `tune`

. This object-oriented implementation allows a high flexibility for the model specification in terms of …

- … the machine learning methods for estimation of the nuisance functions,
- … the resampling schemes,
- … the double machine learning algorithm,
- … the Neyman orthogonal score functions,
- …

It further can be readily extended with regards to

- … new model classes that come with Neyman orthogonal score functions being linear in the target parameter,
- … alternative score functions via callables,
- … alternative resampling schemes,
- …

Install the latest release from CRAN:

Install the development version from GitHub:

**DoubleML** requires

- R (>= 3.5.0)
- R6 (>= 2.4.1)
- data.table (>= 1.12.8)
- stats
- checkmate
- mlr3 (>= 0.5.0)
- mlr3tuning (>= 0.3.0)
- mlr3learners (>= 0.3.0)
- mvtnorm
- utils
- clusterGeneration
- readstata13

If you use the DoubleML package a citation is highly appreciated:

Bach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2020), DoubleML - Double Machine Learning in R. URL: https://github.com/DoubleML/doubleml-for-r, R-Package version 0.2.0.

Bibtex-entry:

```
@Manual{DoubleML2020,
title = {DoubleML - Double Machine Learning in R},
author = {Bach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M.},
year = {2020},
note = {URL: \url{https://github.com/DoubleML/doubleml-for-r}, R-Package version 0.2.0}
}
```

Chernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W. and Robins, J. (2018), Double/debiased machine learning for treatment and structural parameters. The Econometrics Journal, 21: C1-C68, https://doi.org/10.1111/ectj.12097.

Lang, M., Binder, M., Richter, J., Schratz, P., Pfisterer, F., Coors, S., Au, Q., Casalicchio, G., Kotthoff, L., Bischl, B. (2019), mlr3: A modern object-oriented machine learing framework in R. Journal of Open Source Software, https://doi.org/10.21105/joss.01903.