{"id":15288133,"url":"https://github.com/doubleml/doubleml-for-py","last_synced_at":"2025-05-14T14:09:13.042Z","repository":{"id":37867212,"uuid":"294121258","full_name":"DoubleML/doubleml-for-py","owner":"DoubleML","description":"DoubleML - Double Machine Learning in Python","archived":false,"fork":false,"pushed_at":"2025-05-09T11:35:17.000Z","size":8655,"stargazers_count":583,"open_issues_count":29,"forks_count":89,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-05-09T11:42:59.625Z","etag":null,"topics":["causal-inference","data-science","double-machine-learning","econometrics","machine-learning","python","scikit-learn","statistics"],"latest_commit_sha":null,"homepage":"https://docs.doubleml.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DoubleML.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-09-09T13:27:25.000Z","updated_at":"2025-05-09T06:45:30.000Z","dependencies_parsed_at":"2024-01-05T07:35:59.348Z","dependency_job_id":"b1b22040-7777-4529-b6ab-9eff6cee4b97","html_url":"https://github.com/DoubleML/doubleml-for-py","commit_stats":{"total_commits":2050,"total_committers":12,"mean_commits":"170.83333333333334","dds":0.4570731707317073,"last_synced_commit":"ac8ad10d21f4992575b826e543ac4106e1bb768e"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DoubleML%2Fdoubleml-for-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DoubleML%2Fdoubleml-for-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DoubleML%2Fdoubleml-for-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DoubleML%2Fdoubleml-for-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DoubleML","download_url":"https://codeload.github.com/DoubleML/doubleml-for-py/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254160554,"owners_count":22024571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["causal-inference","data-science","double-machine-learning","econometrics","machine-learning","python","scikit-learn","statistics"],"created_at":"2024-09-30T15:44:17.643Z","updated_at":"2025-05-14T14:09:08.032Z","avatar_url":"https://github.com/DoubleML.png","language":"Python","readme":"# DoubleML - Double Machine Learning in Python \u003ca href=\"https://docs.doubleml.org\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/DoubleML/doubleml-for-py/main/doc/logo.png\" align=\"right\" width = \"120\" /\u003e\u003c/a\u003e\n\n[![build](https://github.com/DoubleML/doubleml-for-py/workflows/build/badge.svg)](https://github.com/DoubleML/doubleml-for-py/actions?query=workflow%3Abuild)\n[![PyPI version](https://badge.fury.io/py/DoubleML.svg)](https://badge.fury.io/py/DoubleML)\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/doubleml.svg)](https://anaconda.org/conda-forge/doubleml)\n[![codecov](https://codecov.io/gh/DoubleML/doubleml-for-py/branch/main/graph/badge.svg?token=0BjlFPgdGk)](https://codecov.io/gh/DoubleML/doubleml-for-py)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/1c08ec7d782c451784293c996537de14)](https://www.codacy.com/gh/DoubleML/doubleml-for-py/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=DoubleML/doubleml-for-py\u0026amp;utm_campaign=Badge_Grade)\n[![Python version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)\n\nThe Python package **DoubleML** provides an implementation of the double / debiased machine learning framework of\n[Chernozhukov et al. (2018)](https://doi.org/10.1111/ectj.12097).\nIt is built on top of [scikit-learn](https://scikit-learn.org) (Pedregosa et al., 2011).\n\nNote that the Python package was developed together with an R twin based on [mlr3](https://mlr3.mlr-org.com/).\nThe R package is also available on [GitHub](https://github.com/DoubleML/doubleml-for-r) and\n[![CRAN Version](https://www.r-pkg.org/badges/version/DoubleML)](https://cran.r-project.org/package=DoubleML).\n\n## Documentation and Maintenance\n\nDocumentation and website: [https://docs.doubleml.org/](https://docs.doubleml.org/)\n\n**DoubleML** is currently maintained by [@PhilippBach](https://github.com/PhilippBach) and [@SvenKlaassen](https://github.com/SvenKlaassen).\n\nBugs can be reported to the issue tracker at\n[https://github.com/DoubleML/doubleml-for-py/issues](https://github.com/DoubleML/doubleml-for-py/issues).\n\n## Main Features\n\nDouble / debiased machine learning [(Chernozhukov et al. (2018))](https://doi.org/10.1111/ectj.12097) for\n\n- Partially linear regression models (PLR)\n- Partially linear IV regression models (PLIV)\n- Interactive regression models (IRM)\n- Interactive IV regression models (IIVM)\n\nThe object-oriented implementation of DoubleML is very flexible.\nThe model classes `DoubleMLPLR`, `DoubleMLPLIV`, `DoubleMLIRM` and `DoubleIIVM` implement the estimation of the nuisance\nfunctions via machine learning methods and the computation of the Neyman orthogonal score function.\nAll other functionalities are implemented in the abstract base class `DoubleML`.\nIn particular functionalities to estimate double machine learning models and to perform statistical inference via the\nmethods `fit`, `bootstrap`, `confint`, `p_adjust` and `tune`.\nThis object-oriented implementation allows a high flexibility for the model specification in terms of ...\n\n- ... the machine learners for the nuisance functions,\n- ... the resampling schemes,\n- ... the double machine learning algorithm,\n- ... the Neyman orthogonal score functions,\n- ...\n\nIt further can be readily extended with regards to\n\n- ... new model classes that come with Neyman orthogonal score functions being linear in the target parameter,\n- ... alternative score functions via callables,\n- ... alternative resampling schemes,\n- ...\n\n![An overview of the OOP structure of the DoubleML package is given in the graphic available at https://github.com/DoubleML/doubleml-for-py/blob/main/doc/oop.svg](https://raw.githubusercontent.com/DoubleML/doubleml-for-py/main/doc/oop.svg)\n\n## Installation\n\n**DoubleML** requires\n\n- Python\n- sklearn\n- numpy\n- scipy\n- pandas\n- statsmodels\n- joblib\n\nTo install DoubleML with pip use\n\n```\npip install -U DoubleML\n```\n\nDoubleML can be installed from source via\n\n```\ngit clone git@github.com:DoubleML/doubleml-for-py.git\ncd doubleml-for-py\npip install --editable .\n```\n\nDetailed [installation instructions](https://docs.doubleml.org/stable/intro/install.html) can be found in the documentation.\n\n## Contributing\nDoubleML is a community effort.\nEveryone is welcome to contribute.\nTo get started for your first contribution we recommend reading our\n[contributing guidelines](https://github.com/DoubleML/doubleml-for-py/blob/main/CONTRIBUTING.md)\nand our\n[code of conduct](https://github.com/DoubleML/doubleml-for-py/blob/main/CODE_OF_CONDUCT.md).\n\n## Citation\n\nIf you use the DoubleML package a citation is highly appreciated:\n\nBach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2022), DoubleML - An\nObject-Oriented Implementation of Double Machine Learning in Python,\nJournal of Machine Learning Research, 23(53): 1-6,\n[https://www.jmlr.org/papers/v23/21-0862.html](https://www.jmlr.org/papers/v23/21-0862.html).\n\nBibtex-entry:\n\n```\n@article{DoubleML2022,\n      title   = {{DoubleML} -- {A}n Object-Oriented Implementation of Double Machine Learning in {P}ython},\n      author  = {Philipp Bach and Victor Chernozhukov and Malte S. Kurz and Martin Spindler},\n      journal = {Journal of Machine Learning Research},\n      year    = {2022},\n      volume  = {23},\n      number  = {53},\n      pages   = {1--6},\n      url     = {http://jmlr.org/papers/v23/21-0862.html}\n}\n```\n\n## Acknowledgements\n\nFunding by the Deutsche Forschungsgemeinschaft (DFG, German Research\nFoundation) is acknowledged – Project Number 431701914.\n\n## References\n\nBach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2022), DoubleML - An\nObject-Oriented Implementation of Double Machine Learning in Python,\nJournal of Machine Learning Research, 23(53): 1-6,\n[https://www.jmlr.org/papers/v23/21-0862.html](https://www.jmlr.org/papers/v23/21-0862.html).\n\nChernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W. and Robins, J. (2018),\nDouble/debiased machine learning for treatment and structural parameters. The Econometrics Journal, 21: C1-C68. doi:[10.1111/ectj.12097](https://doi.org/10.1111/ectj.12097).\n\nPedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M. and Duchesnay, E. (2011),\nScikit-learn: Machine Learning in Python. Journal of Machine Learning Research, 12: 2825--2830, [https://jmlr.csail.mit.edu/papers/v12/pedregosa11a.html](https://jmlr.csail.mit.edu/papers/v12/pedregosa11a.html).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoubleml%2Fdoubleml-for-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoubleml%2Fdoubleml-for-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoubleml%2Fdoubleml-for-py/lists"}