Skip to main content

dml-rs

PyPI Python versions CI License

Fast double / debiased machine learning for causal inference, implemented in Rust.

dml-rs implements the double / debiased machine learning framework of Chernozhukov et al. (2018) with a scikit-learn style API. Every model is tested for numerical agreement with the reference DoubleML package, and the Rust core makes estimation typically 3–24× faster.

Installation

pip install dml-rs

Prebuilt wheels are available for Linux, macOS and Windows (Python 3.9 or newer).

Quick start

import numpy as np
import dml_rs

# Simulated data: the true effect of d on y is 0.5; X confounds both
rng = np.random.default_rng(42)
n = 2000
X = rng.normal(size=(n, 5))
d = np.sin(X[:, 0]) + X[:, 1] ** 2 + rng.normal(size=n)
y = 0.5 * d + np.cos(X[:, 0]) + X[:, 1] ** 2 + rng.normal(size=n)

model = dml_rs.PLR(
    ml_l=dml_rs.RandomForestRegressor(min_samples_leaf=5),  # learner for E[y | X]
    ml_m=dml_rs.RandomForestRegressor(min_samples_leaf=5),  # learner for E[d | X]
    n_folds=5,
)
model.fit(X, y, d)
print(model.summary)
       coef   std err          t         P>|t|     2.5 %    97.5 %
d  0.516919  0.029474  17.538215  7.319031e-69  0.459151  0.574687

Any scikit-learn estimator works as a learner. The built-in learners (GradientBoostingRegressor, RandomForestRegressor, Lasso, LassoCV, Ols, LogisticRegression, LogisticRegressionCV, and the corresponding classifiers) run the whole estimation in Rust, in parallel and without the GIL, and are scikit-learn estimators themselves (GridSearchCV, Pipeline, clone and tuning work with them).

Models

Class Target parameter
PLR Partially linear regression: effect of a continuous or binary treatment
IRM Interactive regression model: ATE / ATTE of a binary treatment; cate and gate
PLIV Partially linear IV regression
IIVM Interactive IV model: LATE with a binary instrument
DID, DIDCS Difference-in-differences for panels and repeated cross-sections
StaggeredDID Staggered adoption: ATT(g, t) with group, time and event-study aggregation
SLearner, TLearner, XLearner, RLearner, DRLearner Heterogeneous (conditional average) treatment effects

All estimators support repeated sample splitting, multiplier bootstrap with simultaneous confidence bands (bootstrap, confint(joint=True)), multiple-testing adjustment (p_adjust), pandas summaries, and the scikit-learn parameter protocol (get_params, set_params, clone). PLR, IRM and DID models also offer sensitivity analysis for omitted confounders (sensitivity_analysis, sensitivity_summary, sensitivity_benchmark). Pass cluster= to fit for cluster-robust inference with one- or two-way clustered data, and inspect the nuisance learners with nuisance_loss_ and evaluate_learners.

Documentation

Full feature overview, benchmarks and validation details: https://github.com/AsadGudzevic94/dml-rs

License

Licensed under either of the Apache License 2.0 or the MIT license, at your option.

Metadata

Release files for dml-rs 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dml-rs 1.3.0
File Size Uploaded Provenance Actions
dml_rs-1.3.0.tar.gz 509.9 kB With provenance Details for dml_rs-1.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for dml-rs 1.3.0
File Actions
dml_rs-1.3.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for dml_rs-1.3.0-cp39-abi3-win_amd64.whl
dml_rs-1.3.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details for dml_rs-1.3.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
dml_rs-1.3.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details for dml_rs-1.3.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
dml_rs-1.3.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for dml_rs-1.3.0-cp39-abi3-macosx_11_0_arm64.whl
dml_rs-1.3.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details for dml_rs-1.3.0-cp39-abi3-macosx_10_12_x86_64.whl

Total release size: 12.1 MB

Release files / dml_rs-1.3.0.tar.gz

Download URL dml_rs-1.3.0.tar.gz
Size 509.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9f7e24dea5f21a03b09be8f005841f7e282913da12ba4ce1cc798f1a833bca7a
BLAKE2b-256 checksum
How to use checksums
9af469a733a803bc86307d5c8afb6f83287acf96120e632f9c9d1a9b035c53a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Release files / dml_rs-1.3.0-cp39-abi3-win_amd64.whl

Download URL dml_rs-1.3.0-cp39-abi3-win_amd64.whl
Size 2.2 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
90e3b41e905e5406c41c323d5268a7f861d46ce4ecd1ee9c03e5a276f9e4056a
BLAKE2b-256 checksum
How to use checksums
e91b9a64c6bbc2c5786662c606d0f0de62fa6ad84665dea6b27da44d24c23a5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Release files / dml_rs-1.3.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL dml_rs-1.3.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.4 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
24121b2039d7b25b93d1a7862a728a5e1e51c65eeb3a6b6cb53f022c85c9a499
BLAKE2b-256 checksum
How to use checksums
d04e91e5631abb0f23a516effb9f3282f1133633d87525e75df262d063592571
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Release files / dml_rs-1.3.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL dml_rs-1.3.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 2.4 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
7c3e09e5c5ee9299bb8f02d02392121484c6dadbc9bb564c7991057d8f77f006
BLAKE2b-256 checksum
How to use checksums
fd9997bad66b73f0f21550f2e9d6bc0c6d9372f7768f7ded9d9d704bbf4e96c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Release files / dml_rs-1.3.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL dml_rs-1.3.0-cp39-abi3-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cb14a03039a6e1cc495f3e72880419245b6fd17061416f05f04dd6b281f75a92
BLAKE2b-256 checksum
How to use checksums
679e83c5a9787faf46f881883aece48f86d8946858cb8f29aedf512a9ac3e1ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Release files / dml_rs-1.3.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL dml_rs-1.3.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 2.3 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
203b29934b9bba25e72642336b7d725dda911adc04416d1db21b173ac4736c1c
BLAKE2b-256 checksum
How to use checksums
f38892ed3a57a48ef332f9e211e20f82a0d7c163f7b8f86dc360ddc274dd5516
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Security for dml-rs 1.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for dml_rs-1.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.3.0 This release

6 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page