Learn R Programming

DoubleML - Double Machine Learning in R

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 and maintenance

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 @PhilippBach and @SvenKlaassen.

Main Features

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,

Installation

Install the latest release from CRAN:

remotes::packages("DoubleML")

Install the development version from GitHub:

remotes::install_github("DoubleML/doubleml-for-r")

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

Contributing

DoubleML is a community effort. Everyone is welcome to contribute. To get started for your first contribution we recommend reading our contributing guidelines and our code of conduct.

Citation

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

Bach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2021), DoubleML - An Object-Oriented Implementation of Double Machine Learning in R, arXiv:2103.09603.

Bibtex-entry:

@misc{DoubleML2020,
      title={{DoubleML} -- {A}n Object-Oriented Implementation of Double Machine Learning in {R}}, 
      author={P. Bach and V. Chernozhukov and M. S. Kurz and M. Spindler and Sven Klaassen},
      year={2024},
      journal={Journal of Statistical Software},
      volume={108},
      number={3},
      pages= {1-56},
      doi={10.18637/jss.v108.i03},
      note={arXiv:\href{https://arxiv.org/abs/2103.09603}{2103.09603} [stat.ML]}
}

Acknowledgements

Funding by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) is acknowledged – Project Number 431701914.

References

  • 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.

  • 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.

Copy Link

Version

Install

install.packages('DoubleML')

Monthly Downloads

1,676

Version

1.0.2

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Philipp Bach

Last Published

April 11th, 2025

Functions in DoubleML (1.0.2)

double_ml_data_from_matrix

Wrapper for Double machine learning data-backend initialization from matrix.
DoubleMLIRM

Double machine learning for interactive regression models
DoubleMLPLIV

Double machine learning for partially linear IV regression models
DoubleMLIIVM

Double machine learning for interactive IV regression models
DoubleMLPLR

Double machine learning for partially linear regression models
DoubleML

Abstract class DoubleML
DoubleMLData

Double machine learning data-backend
DoubleMLSSM

Double machine learning for sample selection models
DoubleMLClusterData

Double machine learning data-backend for data with cluster variables
double_ml_data_from_data_frame

Wrapper for Double machine learning data-backend initialization from data.frame.
make_ssm_data

Generates data from a sample selection model (SSM).
fetch_bonus

Data set on the Pennsylvania Reemployment Bonus experiment.
make_irm_data

Generates data from a interactive regression (IRM) model.
make_plr_turrell2018

Generates data from a partially linear regression model used in a blog article by Turrell (2018).
make_plr_CCDDHNR2018

Generates data from a partially linear regression model used in Chernozhukov et al. (2018)
fetch_401k

Data set on financial wealth and 401(k) plan participation.
make_pliv_multiway_cluster_CKMS2021

Generates data from a partially linear IV regression model with multiway cluster sample used in Chiang et al. (2021).
make_pliv_CHS2015

Generates data from a partially linear IV regression model used in Chernozhukov, Hansen and Spindler (2015).
make_iivm_data

Generates data from a interactive IV regression (IIVM) model.