Release notes#

DoubleML 0.5.2 - Fix / adapted unit tests which failed in the release of 0.5.1 to conda-forge

DoubleML 0.5.1

  • Store estimated models for nuisance parameters #159

  • Bug fix: Overwrite for tune method (introduced for depreciation warning) did not return the tune result #160 #162

  • Maintenance #166 #167 #168 #170

DoubleML 0.5.0

  • Implement a new score function score = 'IV-type' for the PLIV model (for details see #151) –> API change from DoubleMLPLIV(obj_dml_data, ml_g, ml_m, ml_r [, ...]) to DoubleMLPLIV(obj_dml_data, ml_g, ml_m, ml_r, ml_g [, ...])

  • Adapt the nuisance estimation for the 'IV-type' score for the PLR model (for details see #151) –> API change from DoubleMLPLR(obj_dml_data, ml_g, ml_m [, ...]) to DoubleMLPLR(obj_dml_data, ml_l, ml_m, ml_g [, ...])

  • Allow the usage of classifiers for binary outcome variables in the model classes IRM and IIVM #134

  • Published in JMLR: DoubleML - An Object-Oriented Implementation of Double Machine Learning in Python (citation info updated in #138)

  • Maintenance #143 #148 #149 #152 #153

DoubleML 0.4.1

DoubleML 0.4.0

  • Release highlight: Clustered standard errors for double machine learning models #116

  • Improve exception handling for missings and infinite values in the confounders, predictions, etc. (fixes #120 by allowing null confounder values) #122

  • Clean up dev requirements and use dev requirements on github actions #121

  • Other updates #123

DoubleML 0.3.0

  • Always use the same bootstrap algorithm independent of dml1 vs dml2 and consistent with docu and paper #101 & #102

  • Added an exception handling to assure that an IV variable is specified when using a PLIV or IIVM model #107

  • Improve exception handling for externally provided sample splitting #110

  • Minor update of the str representation of DoubleMLData objects #112

  • Code refactorings and unit test extensions #103, #105, #106, #111 & #113

DoubleML 0.2.2

  • IIVM model: Added a subgroups option to adapt to cases with and without the subgroups of always-takers and never-takers (#96).

  • Add checks for the intersections of y_col, d_cols, x_cols, z_cols (#84, #97). This also fixes #83 (with intersection between x_cols and d_cols a column could have been added multiple times to the covariate matrix).

  • Added checks and exception handling for duplicate entries in d_cols, x_cols or z_cols (#100).

  • Check the datatype of data when initializing DoubleMLData objects. Also check for duplicate column names (#100).

  • Fix bug #95 in #97: It occurred when x_cols where inferred via setdiff and y_col was a string with multiple characters.

  • We updated the citation info to refer to the arXiv paper (#98): Bach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2021), DoubleML - An Object-Oriented Implementation of Double Machine Learning in Python, arXiv:2104.03220.

DoubleML 0.2.1

  • Provide an option to store & export the first-stage predictions #91

  • Added the package logo to the doc

DoubleML 0.2.0

  • Major extensions of the unit test framework which result in a coverage >98% (a summary is given in #82)

  • In the PLR one can now also specify classifiers for ml_m in case of a binary treatment variable with values 0 and 1 (see #86 for details)

  • The joint Python and R docu and user guide is now served to https://docs.doubleml.org from a separate repo https://github.com/DoubleML/doubleml-docs

  • Generate and upload a unit test coverage report to codecov https://app.codecov.io/gh/DoubleML/doubleml-for-py #76

  • Run lint checks with flake8 #78, align code with PEP8 standards #79, activate code quality checks at codacy #80

  • Refactoring (reduce code redundancy) of the code for tuning of the ML learners used for approximation the nuisance functions #81

  • Minor updates, bug fixes and improvements of the exception handling (contained in #82 & #89)

DoubleML 0.1.2

  • Fixed a compatibility issue with scikit-learn 0.24, which only affected some unit tests (#70, #71)

  • Added scheduled unit tests on github-action (three times a week) #69

  • Split up estimation of nuisance functions and computation of score function components. Further introduced a private method _est_causal_pars_and_se(), see #72. This is needed for the DoubleML-Serverless project: https://github.com/DoubleML/doubleml-serverless.

DoubleML 0.1.1

DoubleML 0.1.0

  • Initial release

  • Development at https://github.com/DoubleML/doubleml-for-py

  • The Python package DoubleML provides an implementation of the double / debiased machine learning framework of Chernozhukov et al. (2018).

  • Implements double machine learning for four different models:

    • Partially linear regression models (PLR) in class DoubleMLPLR

    • Partially linear IV regression models (PLIV) in class DoubleMLPLIV

    • Interactive regression models (IRM) in class DoubleMLIRM

    • Interactive IV regression models (IIVM) in class DoubleMLIIVM

  • All model classes are inherited from an abstract base class DoubleML where the key elements of double machine learning are implemented.

DoubleML 0.5.2

DoubleML 0.5.1

  • Fix a CRAN issue (html checks) by regenerating .Rd-files with the newest version of roxygen2. #166 #167 #168

DoubleML 0.5.0

  • Implement a new score function score = 'IV-type' for the PLIV model (for details see #161) –> API change from DoubleMLPLIV$new(obj_dml_data, ml_g, ml_m, ml_r [, ...]) to DoubleMLPLIV$new(obj_dml_data, ml_g, ml_m, ml_r, ml_g [, ...])

  • Adapt the nuisance estimation for the 'IV-type' score for the PLR model (for details see #161) –> API change from DoubleMLPLR$new(obj_dml_data, ml_g, ml_m [, ...]) to DoubleMLPLR$new(obj_dml_data, ml_l, ml_m, ml_g [, ...])

  • Use task_type instead of learner_class to identify whether a learner is meant to regress or classify (this change makes it possible to easily integrate pipelines from mlr3pipelines as learner for the nuisance functions) #141

  • Add Contribution Guidelines, issue templates, a pull request template and a discussion forum to the R package repository #142 #146 #147

  • Allow the usage of classifiers for binary outcome variables in the model classes IRM and IIVM #114

  • Bug fixes and maintenance #155 #156 #157 #158 #160 #163

DoubleML 0.4.1

  • Prevent usage of glmnet learner for unit testing as recommended by CRAN (failing tests on Solaris) #137

  • Prepare for the upcoming release of checkmate which is not backward compatible with our unit tests #134

DoubleML 0.4.0

DoubleML 0.3.1

  • Initialize all numeric matrices, vectors and arrays with the correct data type by using NA_real_ instead of NA and replace a print() call with cat() #115

DoubleML 0.3.0

  • Use active bindings in the R6 OOP implementation #106 & #93

  • Fix the aggregation formula for standard errors from repeated cross-fitting #94 & #95

  • Always use the same bootstrap algorithm independent of dml1 vs dml2 and consistent with docu and paper #98 & #99

  • Initialize predictions with NA and make sure that there are no misleading entries in the evaluated score functions #96 & #105

  • Avoid overriding learner parameters during tuning #83 & #84

  • Fixes in the exception handling and extension of the unit tests for the score function choice #82

  • Prevent overwriting parameters from initialization when calling set_ml_nuisance_params #87 & #89

  • Major refactoring and cleanup and extension of the unit test framework #101

  • Extension and reorganization of exception handling for DoubleMLData objects #63 & #90

  • Introduce style guide and clean up code #80 & #81

  • Adaption to be compatible with an API change in the next mlr3 release #103

  • Run unit tests with mlr3 in dev version on github actions #104

  • Updated the citation info #78, #79 & #86

  • Added a short version of and a reference to the arXiv paper as vignette #110 & #113

  • Prevent using the subclassed methods check_score and check_data when constructing DoubleML objects #107

  • Other refactoring and minor adaptions #91, #92, #102 & #108

DoubleML 0.2.1

  • Provide an option to store & export the first-stage predictions #74

  • Reduce and refine messaging to the console during estimation #72

  • Fix bug in IIVM model if the IV variable is not named z #75

  • Fix failing unit test #71

  • Added the package logo to the doc

DoubleML 0.2.0

  • In the PLR one can now also specify classifiers for ml_m in case of a binary treatment variable with values 0 and 1

  • Major refactoring of core-parts of the estimation and tuning of the ML estimators for the nuisance functions: All models now use central helper functions dml_cv_predict() and dml_tune()

  • Extensions to the unit test framework to improve upon test coverage

  • Added unit test coverage via codecov: https://app.codecov.io/gh/DoubleML/doubleml-for-r

  • Minor docu updates and adaptions: #58, #61 & #70

DoubleML 0.1.2

  • Adapt calls to mlr3tuning due to a change in their API (since version 0.6.0): fixes #51

  • Add bbotk to suggests: fixes R CMD check note #47

  • Use doi{} command: fixes R CMD check note #54

  • Minor docu updates as DoubleML is now available on CRAN

DoubleML 0.1.1

DoubleML 0.1.0

  • Initial release

  • Development at https://github.com/DoubleML/doubleml-for-r

  • The R package DoubleML provides an implementation of the double / debiased machine learning framework of Chernozhukov et al. (2018).

  • Implements double machine learning for four different models:

    • Partially linear regression models (PLR) in class DoubleMLPLR

    • Partially linear IV regression models (PLIV) in class DoubleMLPLIV

    • Interactive regression models (IRM) in class DoubleMLIRM

    • Interactive IV regression models (IIVM) in class DoubleMLIIVM

  • All model classes are inherited from DoubleML where the key elements of double machine learning are implemented.