Skip to content

double ML support#14

Draft
s3alfisc wants to merge 1 commit intomainfrom
doubleml
Draft

double ML support#14
s3alfisc wants to merge 1 commit intomainfrom
doubleml

Conversation

@s3alfisc
Copy link
Copy Markdown
Member

Should work for all doubleML classes, as they all inherit from the same base class doubleml.double_ml.DoubleML?

import numpy as np
from doubleml import DoubleMLData

from doubleml.datasets import fetch_bonus
from doubleml import DoubleMLPLR
from sklearn.base import clone
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LassoCV

np.random.seed(3141)

df_bonus = fetch_bonus('DataFrame')
n_obs = 500
n_vars = 100
theta = 3
X = np.random.normal(size=(n_obs, n_vars))
d = np.dot(X[:, :3], np.array([5, 5, 5])) + np.random.standard_normal(size=(n_obs,))
y = theta * d + np.dot(X[:, :3], np.array([5, 5, 5])) + np.random.standard_normal(size=(n_obs,))

dml_data_bonus = DoubleMLData(df_bonus,
                                 y_col='inuidur1',
                                 d_cols='tg',
                                 x_cols=['female', 'black', 'othrace', 'dep1', 'dep2',
                                         'q2', 'q3', 'q4', 'q5', 'q6', 'agelt35', 'agegt54',
                                         'durable', 'lusd', 'husd'])
 

dml_data_sim = DoubleMLData.from_arrays(X, y, d)
learner = RandomForestRegressor(n_estimators = 500, max_features = 'sqrt', max_depth= 5)
ml_l_bonus = clone(learner)
ml_m_bonus = clone(learner)
learner = LassoCV()
ml_l_sim = clone(learner)
ml_m_sim = clone(learner)
obj_dml_plr_bonus = DoubleMLPLR(dml_data_bonus, ml_l_bonus, ml_m_bonus)
obj_dml_plr_bonus.fit();
obj_dml_plr_sim = DoubleMLPLR(dml_data_sim, ml_l_sim, ml_m_sim)
obj_dml_plr_sim.fit();

import maketables as mt 

mt.ETable([obj_dml_plr_bonus, obj_dml_plr_sim], caption = 'doubleML treatment effect estimates')

produces

image

@s3alfisc s3alfisc marked this pull request as draft November 23, 2025 19:15
@s3alfisc s3alfisc linked an issue Nov 23, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for doubleML

1 participant