Release notes#
DoubleML 0.9.0
DoubleML 0.8.2
API Update: Change nuisance evaluation for classifiers. The corresponding properties are renamed
nuisance_loss
instead ofrmses
. #254 #184Add new example on sensitivity analysis #190
Add a new example on DiD with DoubleML in R #178
Enable
set_sample_splitting
for cluster data #255Update the
make_confounded_irm_data
data generating process #263Maintainance package #264
DoubleML 0.8.1
DoubleML 0.8.0
Release highlight: Sample-selections models as
DoubleMLSMM
class (by Michaela Kecskésová) #231 #235 #171API change: Remove options
apply_crossfitting
anddml_procedure
from theDoubleML
class #227 #166Restructure the package to improve readability and maintainability #225
Add a
DoubleMLFramework
class to combine multiple DoubleML models (aggregation of estimates, boostrap and CI-procedures) #226 #169Enable the use of external predictions for short models in benchmarks (by Lucien) #238 #239
Add the
gain_statistics
toutils
to sensitivity analysis #229
DoubleML 0.7.1
Release highlight: Add weights to
DoubleMLIRM
class to extend sensitivity to GATEs etc. #220 #229 #155 #161Extend GATE and CATE estimation to the
DoubleMLPLR
class #220 #155Enable the use of external predictions for
DoubleML
classes #221 #159Implementing utility classes and functions (gain statistics and dummy learners) #221 #222 #229 #161
DoubleML 0.7.0
Release highlight: Benchmarking for Sensitivity Analysis (omitted variable bias) #211
Policy tree estimation for the
DoubleMLIRM
class #212Extending sensitivity and policy tree documentation in User Guide and Example Gallery #148 #150
The package requirements are set to python 3.8 or higher #211
Maintenance documentation #149
Maintenance package #213
DoubleML 0.6.3
Fix install requirements for 0.6.2 #208
DoubleML 0.6.2
DoubleML 0.6.1
Release highlight: Difference-in-differences models for ATTE estimation #200 #194
Panel data
DoubleMLDID
Repeated cross sections
DoubleMLDIDCS
Add a potential time variable to
DoubleMLData
(until now only used inDoubleMLDIDCS
) #200Extend the guide in the documentation and add further examples #132 #133 #135
DoubleML 0.6.0
Release highlight: Heterogeneous treatment effects (GATE, CATE, Quantile effects, …)
Add out-of-sample RMSE and targets for nuisance elements and implement nuisance estimation evaluation via
evaluate_learners()
. #182 #188Implement
gate()
andcate()
methods forDoubleMLIRM
class. Both are based on the newDoubleMLBLP
class. #169Implement different type of quantile models #179
Potential quantiles (PQ) in class
DoubleMLPQ
Local potential quantiles (LPQ) in class
DoubleMLLPQ
Conditional value at risk (CVaR) in class
DoubleMLCVAR
Quantile treatment effects (QTE) in class
DoubleMLQTE
Extend clustering to nonlinear scores #190
Add
ipw_normalization
option toDoubleMLIRM
andDoubleMLIIVM
#186Implement an abstract base class for data backends #173
Extend the guide in the documentation and add further examples #116 #125 #126
Code refactorings, bug fixes, docu updates, unit test extensions and continuous integration #183 #192 #195 #196
Change License to BSD 3-Clause #198
DoubleML 0.5.2
Fix / adapted unit tests which failed in the release of 0.5.1 to conda-forge #172
DoubleML 0.5.1
DoubleML 0.5.0
Implement a new score function
score = 'IV-type'
for the PLIV model (for details see #151)
–> API change fromDoubleMLPLIV(obj_dml_data, ml_g, ml_m, ml_r [, ...])
toDoubleMLPLIV(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 fromDoubleMLPLR(obj_dml_data, ml_g, ml_m [, ...])
toDoubleMLPLR(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)
DoubleML 0.4.1
We added Contribution Guidelines, issue templates, a pull request template and a discussion forum to the Python package repository #132
Code refactorings, docu updates, unit test extensions and continuous integration #126 #127 #128 #130 #131
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
vsdml2
and consistent with docu and paper #101 & #102Added 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 #112Code 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 betweenx_cols
andd_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
orz_cols
(#100).Check the datatype of
data
when initializingDoubleMLData
objects. Also check for duplicate column names (#100).Fix bug #95 in #97: It occurred when
x_cols
where inferred via setdiff andy_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 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: DoubleML/doubleml-serverless.
DoubleML 0.1.1
Bug fix in the drawing of bootstrap weights for the multiple treatment case #66 (see also DoubleML/doubleml-for-r#28)
Update install instructions as DoubleML is now listed on pypi
Prepare submission to conda-forge: Include LICENSE file in source distribution
Documentation is now served with HTTPS https://docs.doubleml.org/
DoubleML 0.1.0
Initial release
Development at 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 1.0.1
DoubleML 1.0.0
Update citation info to publication in Journal of Statistical Software, rename helper function and fix links and GH actions 191
DoubleML 0.5.2
DoubleML 0.5.1
DoubleML 0.5.0
Implement a new score function
score = 'IV-type'
for the PLIV model (for details see #161)
–> API change fromDoubleMLPLIV$new(obj_dml_data, ml_g, ml_m, ml_r [, ...])
toDoubleMLPLIV$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 fromDoubleMLPLR$new(obj_dml_data, ml_g, ml_m [, ...])
toDoubleMLPLR$new(obj_dml_data, ml_l, ml_m, ml_g [, ...])
Use
task_type
instead oflearner_class
to identify whether a learner is meant to regress or classify (this change makes it possible to easily integrate pipelines frommlr3pipelines
as learner for the nuisance functions) #141Add 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
DoubleML 0.4.1
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 ofNA
and replace aprint()
call withcat()
#115
DoubleML 0.3.0
Fix the aggregation formula for standard errors from repeated cross-fitting #94 & #95
Always use the same bootstrap algorithm independent of
dml1
vsdml2
and consistent with docu and paper #98 & #99Initialize predictions with NA and make sure that there are no misleading entries in the evaluated score functions #96 & #105
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 & #90Adaption to be compatible with an API change in the next
mlr3
release #103Run unit tests with mlr3 in dev version on github actions #104
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
DoubleML 0.2.1
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 1Major 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()
anddml_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
DoubleML 0.1.2
DoubleML 0.1.1
First release to CRAN https://cran.r-project.org/package=DoubleML
Clean up of imports
Continuous integration was extended by unit tests on github actions DoubleML/doubleml-for-r
DoubleML 0.1.0
Initial release
Development at 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.