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.

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 0.9.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 0.9.0
File Size Uploaded Provenance
dml_rs-0.9.0.tar.gz 139.9 kB With provenance Details

Built distributions (wheels)

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

Total release size: 4.4 MB

Release files / dml_rs-0.9.0.tar.gz

Download URL dml_rs-0.9.0.tar.gz
Size 139.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9a68409da69359dce636232c78365d4ae8e1608072967639439b459e3a074169
BLAKE2b-256 checksum
How to use checksums
4902b8ffcc7594626c298caed3a35a334ec54c48f86e781cd09f180c6f0daa81
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 Oct 24, 2026.

Transparency log

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

Download URL dml_rs-0.9.0-cp39-abi3-win_amd64.whl
Size 749.4 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
79af0a13c9d2263c69be5bee3acfa5ad9fb22b6c179140647db8b904ac35737c
BLAKE2b-256 checksum
How to use checksums
b3229cf70555677a115d7744ac98aab53889de36fb4df44c969354206d7bb154
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 Oct 24, 2026.

Transparency log

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

Download URL dml_rs-0.9.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 941.3 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
8f262d2fdba91e7805083942e3a5fd35630491be8bed7c8102aadec33a7828d0
BLAKE2b-256 checksum
How to use checksums
eb8838478a4803f2a683693cfc434e30c344a2b0178707c5f9a888d140d6d78f
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 Oct 24, 2026.

Transparency log

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

Download URL dml_rs-0.9.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 898.2 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
e65dd62ed242d5a1e66e4612173e01f31f4210efdbdc537cd52e8f169a2dd39f
BLAKE2b-256 checksum
How to use checksums
f729df4f48f762da8835caae092918351a53e29f3479a080c30ab94e19f355ee
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 Oct 24, 2026.

Transparency log

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

Download URL dml_rs-0.9.0-cp39-abi3-macosx_11_0_arm64.whl
Size 828.8 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
35c8a003f1f5cb96ce95a8167e009d0f58d77fd69741d5a8f160ad77f0069fdd
BLAKE2b-256 checksum
How to use checksums
3080c2a611f641dc78bf01cfdeeac55faf79c9782785902d4a3875380de25ded
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 Oct 24, 2026.

Transparency log

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

Download URL dml_rs-0.9.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 877.4 kB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
10a25dab70e6e91c721038ae989201b7eae2a337d796a3670aed72f036235d14
BLAKE2b-256 checksum
How to use checksums
fc8e091b65df65530f211736dbe82cb6572c62ceb2267653f3b12b795291fde2
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 Oct 24, 2026.

Transparency log

Security for dml-rs 0.9.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-0.9.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 Oct 24, 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.

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