[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-DoubleML--doubleml-for-py":3,"similar-DoubleML--doubleml-for-py":188},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":14,"owner_avatar_url":15,"owner_bio":16,"owner_company":17,"owner_location":17,"owner_email":17,"owner_twitter":17,"owner_website":18,"owner_url":19,"languages":20,"stars":25,"forks":26,"last_commit_at":27,"license":28,"difficulty_score":29,"env_os":30,"env_gpu":30,"env_ram":30,"env_deps":31,"category_tags":41,"github_topics":45,"view_count":53,"oss_zip_url":17,"oss_zip_packed_at":17,"status":54,"created_at":55,"updated_at":56,"faqs":57,"releases":87},5181,"DoubleML\u002Fdoubleml-for-py","doubleml-for-py","DoubleML - Double Machine Learning in Python","DoubleML 是一个专为 Python 设计的开源库，旨在实现“双重机器学习”（Double Machine Learning）框架。它主要解决传统统计方法在处理高维数据时难以准确估计因果效应的问题，帮助研究人员在利用机器学习强大预测能力的同时，消除模型偏差，从而获得可靠的因果推断结果。\n\n该工具特别适合数据科学家、计量经济学家以及从事因果推断研究的研究人员使用。无论是需要分析政策干预效果，还是探究变量间的因果关系，DoubleML 都能提供严谨的统计支持。其核心亮点在于基于切尔诺茹科夫等人提出的理论，提供了包括部分线性回归、工具变量回归及交互式模型在内的多种成熟模型类。\n\nDoubleML 采用灵活的面向对象设计，无缝集成 scikit-learn 生态，允许用户自由定制用于估计干扰函数的机器学习算法、重采样方案及评分函数。它不仅支持模型拟合，还内置了自举法（bootstrap）、置信区间计算和假设检验等完整的统计推断功能。对于希望将前沿因果推断理论应用于实际数据项目的专业人士而言，DoubleML 是一个既强大又易扩展的得力助手。","# DoubleML - Double Machine Learning in Python \u003Ca href=\"https:\u002F\u002Fdocs.doubleml.org\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoubleML_doubleml-for-py_readme_f784ebe38f52.png\" align=\"right\" width = \"120\" \u002F>\u003C\u002Fa>\n\n[![build](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fworkflows\u002Fbuild\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Factions?query=workflow%3Abuild)\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002FDoubleML.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002FDoubleML)\n[![Conda Version](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Fdoubleml.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fdoubleml)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FDoubleML\u002Fdoubleml-for-py\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg?token=0BjlFPgdGk)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FDoubleML\u002Fdoubleml-for-py)\n[![Codacy Badge](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoubleML_doubleml-for-py_readme_adaaa9495e23.png)](https:\u002F\u002Fwww.codacy.com\u002Fgh\u002FDoubleML\u002Fdoubleml-for-py\u002Fdashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=DoubleML\u002Fdoubleml-for-py&amp;utm_campaign=Badge_Grade)\n[![Python version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue)](https:\u002F\u002Fwww.python.org\u002F)\n\nThe Python package **DoubleML** provides an implementation of the double \u002F debiased machine learning framework of\n[Chernozhukov et al. (2018)](https:\u002F\u002Fdoi.org\u002F10.1111\u002Fectj.12097).\nIt is built on top of [scikit-learn](https:\u002F\u002Fscikit-learn.org) (Pedregosa et al., 2011).\n\nNote that the Python package was developed together with an R twin based on [mlr3](https:\u002F\u002Fmlr3.mlr-org.com\u002F).\nThe R package is also available on [GitHub](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-r) and\n[![CRAN Version](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoubleML_doubleml-for-py_readme_bc847879c245.png)](https:\u002F\u002Fcran.r-project.org\u002Fpackage=DoubleML).\n\n## Documentation and Maintenance\n\nDocumentation and website: [https:\u002F\u002Fdocs.doubleml.org\u002F](https:\u002F\u002Fdocs.doubleml.org\u002F)\n\n**DoubleML** is currently maintained by [@PhilippBach](https:\u002F\u002Fgithub.com\u002FPhilippBach) and [@SvenKlaassen](https:\u002F\u002Fgithub.com\u002FSvenKlaassen).\n\nBugs can be reported to the issue tracker at\n[https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues).\n\n## Main Features\n\nDouble \u002F debiased machine learning [(Chernozhukov et al. (2018))](https:\u002F\u002Fdoi.org\u002F10.1111\u002Fectj.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:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fblob\u002Fmain\u002Fdoc\u002Foop.svg](https:\u002F\u002Fraw.githubusercontent.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fmain\u002Fdoc\u002Foop.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\u002Fdoubleml-for-py.git\ncd doubleml-for-py\npip install --editable .\n```\n\nDetailed [installation instructions](https:\u002F\u002Fdocs.doubleml.org\u002Fstable\u002Fintro\u002Finstall.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:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)\nand our\n[code of conduct](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fblob\u002Fmain\u002FCODE_OF_CONDUCT.md).\n\n## Citation\n\nIf you use the DoubleML package a citation is highly appreciated:\n\nYou can click the **\"Cite this repository\"** button at the top of the GitHub page to cite the package directly.\nAlternatively, you can cite the following paper:\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:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html](https:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv23\u002F21-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:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html}\n}\n```\n\n## Acknowledgements\n\nFunding by the Deutsche Forschungsgemeinschaft (DFG, German Research\nFoundation) is acknowledged – Project Number 431701914 and Grant GRK 2805\u002F1.\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:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html](https:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html).\n\nChernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W. and Robins, J. (2018),\nDouble\u002Fdebiased machine learning for treatment and structural parameters. The Econometrics Journal, 21: C1-C68. doi:[10.1111\u002Fectj.12097](https:\u002F\u002Fdoi.org\u002F10.1111\u002Fectj.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:\u002F\u002Fjmlr.csail.mit.edu\u002Fpapers\u002Fv12\u002Fpedregosa11a.html](https:\u002F\u002Fjmlr.csail.mit.edu\u002Fpapers\u002Fv12\u002Fpedregosa11a.html).\n","# DoubleML - Python中的双重机器学习 \u003Ca href=\"https:\u002F\u002Fdocs.doubleml.org\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoubleML_doubleml-for-py_readme_f784ebe38f52.png\" align=\"right\" width = \"120\" \u002F>\u003C\u002Fa>\n\n[![构建](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fworkflows\u002Fbuild\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Factions?query=workflow%3Abuild)\n[![PyPI版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002FDoubleML.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002FDoubleML)\n[![Conda版本](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Fdoubleml.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fdoubleml)\n[![Codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FDoubleML\u002Fdoubleml-for-py\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg?token=0BjlFPgdGk)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FDoubleML\u002Fdoubleml-for-py)\n[![Codacy徽章](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoubleML_doubleml-for-py_readme_adaaa9495e23.png)](https:\u002F\u002Fwww.codacy.com\u002Fgh\u002FDoubleML\u002Fdoubleml-for-py\u002Fdashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=DoubleML\u002Fdoubleml-for-py&amp;utm_campaign=Badge_Grade)\n[![Python版本](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue)](https:\u002F\u002Fwww.python.org\u002F)\n\nPython包**DoubleML**提供了[Chernozhukov等（2018）](https:\u002F\u002Fdoi.org\u002F10.1111\u002Fectj.12097)提出的双重\u002F去偏机器学习框架的实现。它基于[scikit-learn](https:\u002F\u002Fscikit-learn.org)（Pedregosa等，2011）构建。\n\n需要注意的是，该Python包与基于[mlr3](https:\u002F\u002Fmlr3.mlr-org.com\u002F)的R版本共同开发。R包同样可在[GitHub](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-r)上找到，并且有[![CRAN版本](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoubleML_doubleml-for-py_readme_bc847879c245.png)](https:\u002F\u002Fcran.r-project.org\u002Fpackage=DoubleML)。\n\n## 文档与维护\n\n文档和网站：[https:\u002F\u002Fdocs.doubleml.org\u002F](https:\u002F\u002Fdocs.doubleml.org\u002F)\n\n**DoubleML**目前由[@PhilippBach](https:\u002F\u002Fgithub.com\u002FPhilippBach)和[@SvenKlaassen](https:\u002F\u002Fgithub.com\u002FSvenKlaassen)维护。\n\n如发现任何问题，可提交至[GitHub问题追踪器](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues)。\n\n## 主要特性\n\n双重\u002F去偏机器学习[(Chernozhukov等，2018)](https:\u002F\u002Fdoi.org\u002F10.1111\u002Fectj.12097)适用于：\n\n- 部分线性回归模型（PLR）\n- 部分线性IV回归模型（PLIV）\n- 交互式回归模型（IRM）\n- 交互式IV回归模型（IIVM）\n\nDoubleML的面向对象实现非常灵活。`DoubleMLPLR`、`DoubleMLPLIV`、`DoubleMLIRM`和`DoubleIIVM`等模型类实现了通过机器学习方法估计干扰函数以及计算Neyman正交得分函数的功能。其他所有功能则在抽象基类`DoubleML`中实现，特别是用于估计双重机器学习模型并进行统计推断的方法，包括`fit`、`bootstrap`、`confint`、`p_adjust`和`tune`等。这种面向对象的实现方式为模型规范提供了高度灵活性，例如：\n\n- 干扰函数所使用的机器学习算法\n- 抽样方案\n- 双重机器学习算法\n- Neyman正交得分函数\n- …\n\n此外，它还可以轻松扩展，以支持：\n\n- 具有线性于目标参数的Neyman正交得分函数的新模型类\n- 通过可调用对象实现的替代得分函数\n- 替代抽样方案\n- …\n\n![DoubleML包的OOP结构概览见图示，地址为https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fblob\u002Fmain\u002Fdoc\u002Foop.svg](https:\u002F\u002Fraw.githubusercontent.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fmain\u002Fdoc\u002Foop.svg)\n\n## 安装\n\n**DoubleML**需要以下依赖：\n\n- Python\n- sklearn\n- numpy\n- scipy\n- pandas\n- statsmodels\n- joblib\n\n使用pip安装DoubleML的命令如下：\n\n```\npip install -U DoubleML\n```\n\n也可以从源码安装：\n\n```\ngit clone git@github.com:DoubleML\u002Fdoubleml-for-py.git\ncd doubleml-for-py\npip install --editable .\n```\n\n详细的[安装说明](https:\u002F\u002Fdocs.doubleml.org\u002Fstable\u002Fintro\u002Finstall.html)可在文档中找到。\n\n## 贡献\n\nDoubleML是一项社区协作项目，欢迎所有人参与贡献。若想开始首次贡献，建议先阅读我们的[贡献指南](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)和[行为准则](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fblob\u002Fmain\u002FCODE_OF_CONDUCT.md)。\n\n## 引用\n\n如果您使用了DoubleML包，请务必引用：\n\n您可以在GitHub页面顶部点击“引用此仓库”按钮直接引用该包。或者，您也可以引用以下论文：\n\nBach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2022), DoubleML - An Object-Oriented Implementation of Double Machine Learning in Python, Journal of Machine Learning Research, 23(53): 1-6, [https:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html](https:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html).\n\nBibtex条目如下：\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:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html}\n}\n```\n\n## 致谢\n\n感谢德国研究联合会（DFG）的资助——项目编号431701914及GRK 2805\u002F1基金。\n\n## 参考文献\n\nBach, P., Chernozhukov, V., Kurz, M. S., and Spindler, M. (2022), DoubleML - An Object-Oriented Implementation of Double Machine Learning in Python, Journal of Machine Learning Research, 23(53): 1-6, [https:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html](https:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv23\u002F21-0862.html)。\n\nChernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W. 和 Robins, J. (2018), 双重\u002F去偏机器学习用于处理效应和结构参数。The Econometrics Journal, 21: C1-C68。doi:[10.1111\u002Fectj.12097](https:\u002F\u002Fdoi.org\u002F10.1111\u002Fectj.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. 和 Duchesnay, E. (2011), Scikit-learn: Machine Learning in Python。Journal of Machine Learning Research, 12: 2825--2830，[https:\u002F\u002Fjmlr.csail.mit.edu\u002Fpapers\u002Fv12\u002Fpedregosa11a.html](https:\u002F\u002Fjmlr.csail.mit.edu\u002Fpapers\u002Fv12\u002Fpedregosa11a.html)。","# DoubleML for Python 快速上手指南\n\nDoubleML 是一个基于 Python 的对象化包，实现了 Chernozhukov 等人提出的双重\u002F去偏机器学习（Double\u002FDebiased Machine Learning）框架。它构建在 `scikit-learn` 之上，适用于部分线性回归模型（PLR）、工具变量模型（PLIV）及交互式模型（IRM\u002FIIVM）等因果推断场景。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：3.10, 3.11, 3.12 或 3.13\n*   **核心依赖**：安装 DoubleML 时会自动安装以下库，也可手动预装：\n    *   `scikit-learn` (sklearn)\n    *   `numpy`\n    *   `scipy`\n    *   `pandas`\n    *   `statsmodels`\n    *   `joblib`\n\n## 安装步骤\n\n您可以选择通过 PyPI 直接安装稳定版，或从源码安装以获取最新功能。\n\n### 方式一：使用 pip 安装（推荐）\n\n建议使用国内镜像源加速安装（如清华大学开源软件镜像站）：\n\n```bash\npip install -U DoubleML -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n或者使用官方源：\n\n```bash\npip install -U DoubleML\n```\n\n### 方式二：从源码安装\n\n如果您需要开发贡献或使用最新代码：\n\n```bash\ngit clone git@github.com:DoubleML\u002Fdoubleml-for-py.git\ncd doubleml-for-py\npip install --editable .\n```\n\n## 基本使用\n\nDoubleML 的核心流程包括：定义数据、选择机器学习模型（Nuisance Models）、实例化 DoubleML 模型类、拟合模型以及进行统计推断。\n\n以下是一个最简单的 **部分线性回归模型 (PLR)** 使用示例：\n\n```python\nimport numpy as np\nimport pandas as pd\nfrom sklearn.ensemble import RandomForestRegressor\nfrom doubleml import DoubleMLData, DoubleMLPLR\n\n# 1. 生成模拟数据\nnp.random.seed(42)\nn_obs = 500\nX = np.random.normal(size=(n_obs, 5))\nd = np.random.normal(size=n_obs) + X[:, 0]  # 处理变量\ny = 2 * d + np.random.normal(size=n_obs) + X @ np.array([1, 0, 0, 0, 0])  # 结果变量\n\n# 2. 创建 DoubleML 数据对象\n# y: 结果变量，d: 处理变量，X: 协变量\nobj_dml_data = DoubleMLData.from_arrays(x=X, y=y, d=d)\n\n# 3. 定义用于估计干扰函数 (Nuisance Functions) 的机器学习模型\n# lrs_model 用于预测 y，lrd_model 用于预测 d\nlearner_lrs = RandomForestRegressor(n_estimators=100, max_features=20, max_depth=5)\nlearner_lrd = RandomForestRegressor(n_estimators=100, max_features=20, max_depth=5)\n\n# 4. 初始化 DoubleMLPLR 模型\n# 设置交叉折叠数 (n_folds) 和重复次数 (n_rep)\ndml_plr_obj = DoubleMLPLR(obj_dml_data, \n                          ml_l=learner_lrs, \n                          ml_m=learner_lrd,\n                          n_folds=5)\n\n# 5. 拟合模型\ndml_plr_obj.fit()\n\n# 6. 查看结果摘要\nprint(dml_plr_obj.summary)\n\n# 7. 获取置信区间\nprint(dml_plr_obj.confint())\n```\n\n**关键说明：**\n*   `DoubleMLData`：封装输入数据，区分结果变量 (`y`)、处理变量 (`d`) 和协变量 (`X`)。\n*   `ml_l` 和 `ml_m`：分别对应结果方程和处理方程的机器学习模型，支持任何 `scikit-learn` 兼容的估计器。\n*   `fit()`：执行双重机器学习算法，包括交叉拟合和正交得分计算。\n*   `summary`：输出包含系数估计值、标准误、t 统计量和 p 值的表格。","某电商平台数据科学团队希望量化“发放优惠券”对“用户复购率”的真实因果效应，以优化营销预算分配。\n\n### 没有 doubleml-for-py 时\n- **混淆变量干扰严重**：传统回归难以处理年龄、历史消费等大量高维协变量，导致估算结果包含大量偏差，无法区分是优惠券生效还是用户本身购买力强。\n- **模型选择僵化**：为了保持统计可解释性，被迫放弃随机森林或梯度提升树等高精度机器学习模型，只能使用线性模型，牺牲了对复杂非线性关系的拟合能力。\n- **推断过程繁琐**：手动实现去偏机器学习（Double Machine Learning）算法极其复杂，需自行编写交叉拟合和正交得分函数代码，耗时数周且容易引入编程错误。\n- **置信区间缺失**：仅能得到点估计值，缺乏严谨的统计推断（如标准误、置信区间），难以向管理层证明结果的可靠性。\n\n### 使用 doubleml-for-py 后\n- **精准剥离因果效应**：利用部分线性回归模型（PLR）自动控制高维混淆变量，结合机器学习强大的拟合能力，精准分离出优惠券带来的净增益。\n- **灵活集成主流算法**：无缝对接 scikit-learn，可自由指定随机森林或 Lasso 作为辅助学习器，既保留了机器学习的预测精度，又获得了因果推断的无偏性。\n- **一键完成复杂估算**：通过 `DoubleMLPLR` 类几行代码即可自动执行交叉拟合与正交化流程，将原本数周的算法实现工作缩短至几分钟。\n- **提供严谨统计证据**：直接输出稳健的标准误、置信区间及 P 值，支持自助法（bootstrap）检验，让决策结论具备坚实的统计学支撑。\n\ndoubleml-for-py 将复杂的因果推断理论转化为简洁的工程实践，让数据团队能在高维数据中放心地使用机器学习来回答关键的商业因果问题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoubleML_doubleml-for-py_8dd80900.png","DoubleML","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FDoubleML_93dc482c.png","",null,"doubleml.org","https:\u002F\u002Fgithub.com\u002FDoubleML",[21],{"name":22,"color":23,"percentage":24},"Python","#3572A5",100,721,112,"2026-04-06T18:55:35","BSD-3-Clause",1,"未说明",{"notes":32,"python":33,"dependencies":34},"该工具基于 scikit-learn 构建，用于实现双重\u002F去偏机器学习框架。支持通过 pip 或 conda 安装，也可从源码安装。文档指出其具有高度的面向对象灵活性，可自定义机器学习模型、重采样方案等。","3.10 | 3.11 | 3.12 | 3.13",[35,36,37,38,39,40],"scikit-learn","numpy","scipy","pandas","statsmodels","joblib",[42,43,44],"数据工具","开发框架","其他",[46,47,35,48,49,50,51,52],"machine-learning","python","causal-inference","statistics","econometrics","data-science","double-machine-learning",2,"ready","2026-03-27T02:49:30.150509","2026-04-08T01:49:11.981380",[58,63,68,73,78,83],{"id":59,"question_zh":60,"answer_zh":61,"source_url":62},23487,"DoubleML 是否支持多个处理变量？如果支持，如何正确建模以避免隐含假设？","DoubleMLData 允许定义多个处理变量，但在实际估计时，建议为每个处理变量单独创建模型实例（例如分别实例化 DoubleMLPLR），然后合并结果对象以进行有效的同时推断。如果在单个模型实例中同时估计多个处理变量，会强加一些关于函数形式和因果结构的隐含假设（例如无法对 D1 使用提升树而对 D2 使用线性模型，且协变量选择必须对所有处理变量统一）。正确的做法是使用单独的实例，并连接生成的 `doubleml.DoubleMLFramework` 对象，其中包含用于构建置信区间的缩放版得分函数。","https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F299",{"id":64,"question_zh":65,"answer_zh":66,"source_url":67},23488,"如何在面板数据中使用 DoubleML 控制个体固定效应和时间固定效应？","目前 DoubleML 中的双重差分（DiD）模型主要考虑两个时间段，并通过结果的一阶差分来消除个体固定效应。对于多期面板数据，若要控制个体和时间固定效应同时遵守交叉拟合（cross-fitting）的最佳实践（避免数据泄露），可以采取以下策略：1. 使用双向聚类（two-way clustering），确保训练和测试集中不包含相同的个体或时间变量；2. 如果样本量较小，直接生成个体虚拟变量可能不合适，此时需要对问题施加更多结构假设（例如线性假设）；3. 也可以考虑分时间段单独估计，但这会减少每年的样本量。具体实现可参考官方文档中关于多向聚类的示例。","https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F194",{"id":69,"question_zh":70,"answer_zh":71,"source_url":72},23489,"如何使用 DoubleML 估计具有多个连续处理变量的平均处理效应（ATE）？","可以使用 `DoubleMLData` 定义多个连续处理变量（如 `['D1', 'D2', 'D3', 'D4']`）和对应的工具变量，然后使用 `DoubleMLPLIV` 等模型进行拟合。代码示例如下：\n```python\nobj_dml_data = dml.DoubleMLData(data, y, ['D1', 'D2', 'D3', 'D4'], z_cols=['IV1', 'IV2', 'IV3','IV4'], x_cols=controls)\ndml_pliv_obj = dml.DoubleMLPLIV(obj_dml_data, ml_l, ml_m, ml_r)\nresult = dml_pliv_obj.fit().summary\n```\n需要注意的是，对于多个处理变量，应进行有效的同时推断（valid simultaneous inference）。DoubleML 提供了基于乘数自举法（multiplier bootstrap）的程序，或使用 Romano-Wolf、Bonferroni 等 p 值校正方法。详细信息请参阅官方文档中关于置信带和同时推断的章节。","https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F334",{"id":74,"question_zh":75,"answer_zh":76,"source_url":77},23490,"DoubleML 是否有针对弱工具变量（weak instruments）的稳健推断方法？","针对弱工具变量导致的置信区间覆盖率低的问题，传统的 Wald 型置信区间可能失效。解决方案是构建基于 Anderson-Rubin 检验（即得分检验）的置信区间，该方法通过反转得分检验统计量来获得稳健的置信集。这一思路已推广至非参数模型。DoubleML 正在开发相关的稳健功能（如 `robust_confint()` 方法），并提供了关于稳健工具变量回归的开发版示例笔记本（notebook），用户可在开发文档中查看 `py_double_ml_robust_iv.html` 获取最新实现和代码模板。","https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F311",{"id":79,"question_zh":80,"answer_zh":81,"source_url":82},23491,"Partial Linear Regression (PLR) 模型是否支持样本权重（weights）参数？","虽然交互式回归模型（IRM）已经支持 `weights` 参数，但用户强烈建议在 PLR 模型中也添加类似的功能。目前的实现尚未完全包含此特性，但该需求已被列为功能增强请求。参考 IRM 模型中权重的实现方式（见相关 Pull Request #220），未来版本可能会在 PLR 模型的初始化参数中加入 `weights`，以允许用户在估计 nuisance 元素和处理效应时赋予不同观测值不同的权重。请关注后续版本更新或社区贡献的代码。","https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F248",{"id":84,"question_zh":85,"answer_zh":86,"source_url":62},23492,"在 DoubleML 中进行多重处理变量估计时，为什么不能对不同处理变量使用不同的机器学习算法？","当在单个 DoubleML 模型实例中同时估计多个处理变量时，实现上要求对所有处理变量使用相同的机器学习算法来估计干扰参数（nuisance elements）。这是因为该简化设计限制了灵活性：例如，你不能对第一个处理变量 $D_1$ 使用提升树算法，而对第二个处理变量 $D_2$ 使用线性模型。此外，协变量的选择也必须对所有处理变量统一指定。若需对不同处理变量使用不同的模型或协变量组合，必须为每个处理变量分别实例化模型，最后再合并结果对象进行推断。",[88,93,98,103,108,113,118,123,128,133,138,143,148,153,158,163,168,173,178,183],{"id":89,"version":90,"summary_zh":91,"released_at":92},145006,"0.11.2","- **发布亮点**：适用于具有固定效应的静态面板模型的 DoubleML（由 [Julian Diefenbacher](https:\u002F\u002Fgithub.com\u002FJulianDiefenbacher) 实现）\n\n  - 通过 `DoubleMLPLPR` 类实现  [Py #378](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F378)\n  - 扩展用户指南和示例图库  [Docs #267](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F267)\n\n- 对 `DoubleMLFramework` 类进行重构  [Py #376](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F376)\n\n- 在工作流中添加调参功能  [Docs #268](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F268)  [Docs #269](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F269)\n\n- 维护性更新包  [Py #380](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F380)  [Py #381](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F381)  [Py #382](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F382)  [Py #384](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F384)\n\n- 维护性文档更新  [Docs #263](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F263)  [Docs #264](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F264)  [Docs #265](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F265)  [Docs #266](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F266)  [Docs #270](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F270)  [Docs #272](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F272)  [Docs #273](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F273)\n","2026-01-19T09:28:30",{"id":94,"version":95,"summary_zh":96,"released_at":97},145007,"0.11.1","- **发布亮点：** 使用 `Optuna` 进行超参数调优（由 [Jan Teichert-Kluge](https:\u002F\u002Fgithub.com\u002FJanTeichertKluge) 提供）\n\n  - 为 DoubleML 类实现了 `tune_ml_models()` 方法  [Py #368](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F368)\n  - 扩展了用户指南和示例图库  [Docs #260](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F260)\n\n- 维护性修复  [Py #372](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F372) [Py #374](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F374) [Py #377](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F377)\n\n- 文档维护  [Docs #261](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F261) [Docs #262](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F262)","2025-12-04T12:29:37",{"id":99,"version":100,"summary_zh":101,"released_at":102},145008,"0.11.0","- **发布亮点**：物流部分线性回归模型（由 [Julius Herzig](https:\u002F\u002Fgithub.com\u002Fjer2ig) 实现）\n\n  - 通过 `DoubleMLLPLR` 类实现（[Py #365](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F365)）\n  - 扩展了用户指南和示例图库（[Docs #253](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F253)）\n\n- 数据类重构（由 [Jan Teichert-Kluge](https:\u002F\u002Fgithub.com\u002FJanTeichertKluge) 完成）（[Py #338](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F338)、[Py #337](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F337)、[Py #336](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F336)、[Docs #251](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F251)）\n\n  - 将聚类信息集成到 `DoubleMLData` 类中\n  - 新增特定于模型的数据后端：\n    - `DoubleMLPanelData`\n    - `DoubleMLSSMData`\n    - `DoubleMLRDDData`\n  - 数据生成器被放置到相应的子模块中，例如 `from doubleml.plm.datasets import make_plr_CCDDHNR2018`（[Py #331](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F331)、[Py #332](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F332)）\n\n- 更新了 `DoubleMLSSM` 类的干扰项调优（由 [Batuhan Tongarlak](https:\u002F\u002Fgithub.com\u002Fbatuhanovski) 完成）（[Py #352](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F352)）\n\n- 通过新的 `PSProcessor` 类更新了 `irm` 和 `did` 模型中的倾向得分处理（[Py #363](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F363)、[Docs #254](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F254)）\n\n- 添加了 TabPFN 示例笔记本（[Docs #248](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F248)、[Docs #259](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F259)）\n\n- 维护性包（[Py #354](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F354)、[Py #355](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F355)、[Py #356](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F356)、[Py #357](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F357)、[Py #358](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F358)、[Py #359](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F359)、[Py #360](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F360)、[Py #361](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F361)、[Py #367](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F367)、[Py #367](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F367)、[Py #369](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F369)、[Py #370](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F370)、[Py #371](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F371)）\n\n- 维护性文档（[Docs #249](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F249)、[Docs #250](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F250)、[Docs #252](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F252)、[Docs #255](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F255)、[Docs #256](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F256)、[Docs #257](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F257)、[Docs #258](htt","2025-11-21T09:57:35",{"id":104,"version":105,"summary_zh":106,"released_at":107},145009,"0.10.1","- **发布亮点：** 用于重复横截面数据的多期双重差分法  \n  - 通过 `DoubleMLDIDMulti` 类实现  [Py #330](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F330)  [Py #345](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F345)\n  - 扩展用户指南和示例图库  [Docs #243](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F243)\n\n- 允许为 `RDFlex` 自定义带宽  [Py #343](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F343)\n\n- 维护性更新包  [Py #327](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F327)  [Py #336](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F336)\n\n- 维护性文档更新  [Docs #241](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F241)   [Docs #242](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F242)  [Docs #244](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F244) [Docs #245](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F245)  [Docs #246](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F246)\n","2025-07-08T07:39:06",{"id":109,"version":110,"summary_zh":111,"released_at":112},145010,"0.10.0","- **发布亮点**：面向面板数据的多期双重差分法\n  - 通过 `DoubleMLDIDMulti` 类实现（[Py #292](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F292)，[Py #315](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F315)）\n  - 新增 `doubleml.data` 子模块，包含 `DoubleMLData` 和 `DoubleMLPanelData` 类（[Py #292](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F292)）\n  - 扩展用户指南和示例图库（[Docs #224](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F224)，[Docs #233](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F233)，[Docs #237](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F237)）\n\n- 增加对弱工具变量鲁棒的置信集：为 `DoubleMLIIVM` 添加 `robust_confset()` 方法（由 [Ezequiel Smucler](https:\u002F\u002Fgithub.com\u002Fesmucler) 和 [David Masip](https:\u002F\u002Fgithub.com\u002Fdavid26694) 实现）（[Py #318](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F318)，[Docs #234](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F234)）\n\n- 更新敏感性分析操作，以改进敏感性边界（[Py #295](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F295)）\n\n- 改进 `DoubleMLAPO` 的干扰项估计，并更新加权得分相关部分。新增示例用于比较 `DoubleMLIRM` 和 `DoubleMLAPO`（[Py #295](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F295)，[Py #297](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F297)，[Docs #220](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F220)）\n\n- 通过置信区间更新重复实验中的方差聚合（[Py #324](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F324)，[Docs #236](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F236)）\n\n- 使用 `CITATION.cff` 添加单独的软件包引用（[Py #321](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F321)）\n\n- 更新软件包格式化与代码检查，并添加 pre-commit 钩子（[Py #288](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F288)，[Py #289](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F289)，[Py #294](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F294)，[Py #316](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F316)）\n\n- 维护性更新（[Py #287](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F287)，[Py #288](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F288)，[Py #291](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F291)，[Py #319](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F319)）\n\n- 文档维护性更新（[Docs #211](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F211)，[Docs #213](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F213)，[Docs #214](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F214)，[Docs #215](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F215)，[Docs #216](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F216)，[Docs #217](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F217)，[Docs #218](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F218)，[Docs #219](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F219)，[Docs #221](https:\u002F\u002Fgithub.com\u002FDouble","2025-05-26T05:52:49",{"id":114,"version":115,"summary_zh":116,"released_at":117},145011,"0.9.3","- 修复并适配了在 0.9.2 版本发布到 conda-forge 时失败的单元测试。[#208](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F208)\n","2025-01-09T14:51:26",{"id":119,"version":120,"summary_zh":121,"released_at":122},145012,"0.9.2","- 将 `rdrobust` 设置为 Conda 的可选依赖。创建 `pyproject.toml` 文件，并移除用于打包的 `setup.py` [#285](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F285) [#286](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F286)\n\n- 维护性更新 [#284](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F284)\n\n- 文档维护 [#205](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F205) [#206](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F206) [#207](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F207)\n","2025-01-08T11:22:53",{"id":124,"version":125,"summary_zh":126,"released_at":127},145013,"0.9.1","- **发布亮点**：通过 `RDFlex` 类实现灵活协变量调整的断点回归设计（与 [Claudia Noack](https:\u002F\u002Fgithub.com\u002Fclaudianoack) 和 [Tomasz Olma](https:\u002F\u002Fgithub.com\u002Ftomaszolma) 合作；参见 [他们的论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2107.07942)）[#276](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F276)\n  \n- 添加 `cov_type=HC0`，并为 `DoubleMLBLP` 启用关键字参数 [#270](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F270) [#271](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F271)\n\n- 更新用户指南和示例图库 [#204](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F204)\n\n- 添加用于调优 DoubleML 估计量的 AutoML 示例 [#199](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F199)\n\n- 维护性更新 [#268](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F268) [#278](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F278) [#279](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F279) [#281](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F281) [#282](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F282)\n\n- 维护性文档更新 [#201](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F201) [#203](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F203)\n","2025-01-06T12:15:19",{"id":129,"version":130,"summary_zh":131,"released_at":132},145014,"0.9.0","- **发布亮点**：通过 `DoubleMLAPO` 和 `DoubleMLAPOS` 类实现多值离散处理效应的平均潜在结果估计（由 [Apoorva Lal](https:\u002F\u002Fgithub.com\u002Fapoorvalal) 提出）[#245](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F245) [#250](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F250)\n\n- 更新用户指南和示例图库 [#188](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F188) [#195](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F195)\n\n- 向 `DoubleMLFramework` 添加敏感性分析 [#249](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F249)\n\n- 维护性更新 [#264](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F264) [#265](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F265) [#266](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F266)\n\n- 文档维护 [#182](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F182) [#184](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F184) [#186](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F186) [#193](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F193) [#194](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F194) [#196](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F196) [#197](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F197)\n","2024-08-30T14:52:50",{"id":134,"version":135,"summary_zh":136,"released_at":137},145015,"0.8.2","- **API 更新**：修改分类器的干扰项评估方式。相应属性已更名为 `nuisance_loss`，而非 `rmses` [#254](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F254)  [#184](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F184)\n\n- 新增关于敏感性分析的示例 [#190](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F190)\n\n- 新增使用 R 语言和 DoubleML 进行双重差分法（DiD）分析的示例 [#178](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F178)\n\n- 为聚类数据启用 `set_sample_splitting` 功能 [#255](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F255)\n\n- 更新 `make_confounded_irm_data` 数据生成流程 [#263](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F263)\n\n- 维护性包 [#264](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F264)\n\n- 文档维护 [#177](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F177)  [#180](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F180)  [#181](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F181)  [#187](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F187)  [#189](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F189)\n","2024-08-05T15:56:00",{"id":139,"version":140,"summary_zh":141,"released_at":142},145016,"0.8.1","- Increment package requirements and update workflows for Python 3.9 (add tests for Python 3.12) [#247](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F247) [#175](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F175)\r\n\r\n- Additional example for ranking treatment effects (by [Apoorva Lal](https:\u002F\u002Fgithub.com\u002Fapoorvalal)) [#173](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F173) [#174](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F174)\r\n\r\n- Maintenance documentation [#172](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F172)\r\n","2024-06-10T13:15:39",{"id":144,"version":145,"summary_zh":146,"released_at":147},145017,"0.8.0","- **Release highlight:** Sample-selections models as `DoubleMLSMM` class (by [Michaela Kecskésová](https:\u002F\u002Fgithub.com\u002Fmychaelka)) [#231](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F231) [#235](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F235) [#171](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F171)\r\n- **API change:** Remove options `apply_crossfitting` and `dml_procedure` from the `DoubleML` class [#227](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F227) [#166](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F166)\r\n- Restructure the package to improve readability and maintainability [#225](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F225)\r\n- Add a `DoubleMLFramework` class to combine multiple DoubleML models (aggregation of estimates, bootstrap, and CI-procedures [#226](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F226) [#169](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F169)\r\n- Enable the use of external predictions for short models in benchmarks (by [Lucien](https:\u002F\u002Fgithub.com\u002Flucien1011)) [#238](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F238) [#239](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F239)\r\n- Add the `gain_statistics` to `utils` for sensitivity analysis [#229](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F229)\r\n\r\n- Maintenance documentation [#162](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F162) [#163](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F163) [#164](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F164) [#165](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F165) [#167](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F167) [#168](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F168)\r\n\r\n- Maintenance package  [#225](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F225) [#229](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F229) [#246](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F246)\r\n","2024-06-06T14:19:17",{"id":149,"version":150,"summary_zh":151,"released_at":152},145018,"0.7.1","- **Release highlight:** Add weights to `DoubleMLIRM` class to extend sensitivity to GATEs etc. [#220](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F220) [#229](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F229) [#155](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F155) [#161](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F161)\r\n\r\n- Extend GATE and CATE estimation to the `DoubleMLPLR` class [#220](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F220) [#155](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F155)\r\n\r\n- Enable the use of external predictions for `DoubleML` classes [#221](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F221) [#159](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F159)\r\n\r\n- Implementing utility classes and functions (gain statistics and dummy learners) [#221](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F221) [#222](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F222) [#229](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F229) [#161](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F161)\r\n\r\n- Extend example Gallery [#153](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F153) [#158](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F158) [#161](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F161)\r\n\r\n- Maintenance documentation [#157](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F157) [#160](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F160)\r\n\r\n- Maintenance package [#223](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F223) [#224](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F224)","2024-02-02T12:57:01",{"id":154,"version":155,"summary_zh":156,"released_at":157},145019,"0.7.0","- **Release highlight:** Benchmarking for Sensitivity Analysis (omitted variable bias) [#211](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F211)\r\n\r\n- Policy tree estimation for the `DoubleMLIRM` class [#212](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F212)\r\n\r\n- Extending sensitivity and policy tree documentation in User Guide and Example Gallery [#148](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F148) [#150](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F150)\r\n\r\n- The package requirements are set to Python 3.8 or higher [#211](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F211)\r\n\r\n- Maintenance documentation [#149](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F149)\r\n\r\n- Maintenance package [#213](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F213)","2023-09-18T12:38:57",{"id":159,"version":160,"summary_zh":161,"released_at":162},145020,"0.6.3","- Fix install requirements for 0.6.2 [#208](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F208)\r\n","2023-06-26T12:40:20",{"id":164,"version":165,"summary_zh":166,"released_at":167},145021,"0.6.2","- **Release highlight:** Sensitivity Analysis (omitted variable bias) for [#201](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F201)\r\n\r\n  - `DoubleMLPLR`\r\n  - `DoubleMLIRM`\r\n  - `DoubleMLDID`\r\n  - `DoubleMLDIDCS`\r\n\r\n- Updated documentation [#144](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F144) [#141](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F141)\r\n\r\n- Extend the guide with sensitivity and add further examples [#142](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F142)\r\n\r\n- Maintenance package [#202](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F202) [#206](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F206)\r\n\r\n- Maintenance documentation [#137](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F137) [#138](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F138) [#140](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F140) [#143](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F143) [#145](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F145) [#146](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F146)\r\n","2023-06-21T14:28:39",{"id":169,"version":170,"summary_zh":171,"released_at":172},145022,"0.6.1","## DoubleML 0.6.1\r\n\r\n- **Release highlight:** Difference-in-differences models for ATTE estimation [#200](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F200) [#194](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fissues\u002F194)\r\n        - Panel data `DoubleMLDID`\r\n        - Repeated cross sections `DoubleMLDIDCS`\r\n\r\n- Add a potential time variable to `DoubleMLData` (until now only used in `DoubleMLDIDCS`) [#200](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F200)\r\n\r\n- Extend the guide in the documentation and add further examples [#132](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F132) [#133](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F133) [#135](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F135)\r\n\r\n- Maintenance [#199](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F199) [#134](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F134) [#136](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-docs\u002Fpull\u002F136)\r\n","2023-05-08T07:39:45",{"id":174,"version":175,"summary_zh":176,"released_at":177},145023,"0.6.0","**DoubleML 0.6.0**\r\n\r\n- **Release highlight:** Heterogeneous treatment effects (GATE, CATE, Quantile effects, ...)\r\n- Add out-of-sample RMSE and targets for nuisance elements and implement nuisance estimation\r\n  evaluation via `evaluate_learners()`. [#182](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F182) [#188](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F188)\r\n- Implement `gate()` and `cate()` methods for `DoubleMLIRM` class. Both are\r\n  based on the new `DoubleMLBLP` class. [#169](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F169)\r\n- Implement different type of quantile models [#179](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F179)\r\n\r\n    - Potential quantiles (PQ) in class `DoubleMLPQ`\r\n    - Local potential quantiles (LPQ) in class `DoubleMLLPQ`\r\n    - Conditional value at risk (CVaR) in class `DoubleMLCVAR`\r\n    - Quantile treatment effects (QTE) in class `DoubleMLQTE`\r\n\r\n- Extend clustering to nonlinear scores [#190](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F190)\r\n- Add `ipw_normalization` option to `DoubleMLIRM` and `DoubleMLIIVM` [#186](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F186)\r\n- Implement an abstract base class for data backends [#173](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F173)\r\n- Code refactorings, bug fixes, docu updates, unit test extensions and continuous integration [#183](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F183) [#192](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F192) [#195](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F195) [#196](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F196)\r\n- Change License to BSD 3-Clause [#198](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F198)\r\n- Maintenance [#174](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F174) [#178](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F178) [#181](https:\u002F\u002Fgithub.com\u002FDoubleML\u002Fdoubleml-for-py\u002Fpull\u002F181)","2023-04-04T13:16:26",{"id":179,"version":180,"summary_zh":181,"released_at":182},145024,"0.5.2","- Fix \u002F adapted unit tests which failed in the release of 0.5.1 to conda-forge #172","2022-11-14T10:43:05",{"id":184,"version":185,"summary_zh":186,"released_at":187},145025,"0.5.1","- Store estimated models for nuisance parameters #159\r\n- Bug fix: Overwrite for tune method (introduced for depreciation warning) did not return the tune result #160 #162\r\n- Maintenance #166 #167 #168 #170","2022-11-11T14:30:54",[189,200,208,217,225,234],{"id":190,"name":191,"github_repo":192,"description_zh":193,"stars":194,"difficulty_score":195,"last_commit_at":196,"category_tags":197,"status":54},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[198,43,199,42],"Agent","图像",{"id":201,"name":202,"github_repo":203,"description_zh":204,"stars":205,"difficulty_score":195,"last_commit_at":206,"category_tags":207,"status":54},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[43,199,198],{"id":209,"name":210,"github_repo":211,"description_zh":212,"stars":213,"difficulty_score":53,"last_commit_at":214,"category_tags":215,"status":54},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",143909,"2026-04-07T11:33:18",[43,198,216],"语言模型",{"id":218,"name":219,"github_repo":220,"description_zh":221,"stars":222,"difficulty_score":53,"last_commit_at":223,"category_tags":224,"status":54},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[43,199,198],{"id":226,"name":227,"github_repo":228,"description_zh":229,"stars":230,"difficulty_score":53,"last_commit_at":231,"category_tags":232,"status":54},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[233,43],"插件",{"id":235,"name":236,"github_repo":237,"description_zh":238,"stars":239,"difficulty_score":195,"last_commit_at":240,"category_tags":241,"status":54},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[216,199,198,43]]