Skip to content
Research2 min read

Benchmark MultiTreatmentIRM vs DoubleML Multitreatment (APOS)

This notebook presents the doubleml multitreatment benchmark research workflow and key analysis steps.

Benchmark MultiTreatmentIRM vs DoubleML Multitreatment (APOS)

This notebook presents the doubleml multitreatment benchmark research workflow and key analysis steps.

Compare MultiTreatmentIRM from Causalis with the DoubleML multitreatment realization (DoubleMLAPOS) on the same 3-arm DGP.

DGP

Use generate_multitreatment_irm_26() with oracle effects so we can benchmark each active arm against control.

Result
yd_0d_1d_2tenure_monthsavg_sessions_weekspend_last_monthpremium_userurban_residentsupport_tickets_q...m_obs_d_1tau_link_d_1m_d_2m_obs_d_2tau_link_d_2g_d_0g_d_1g_d_2cate_d_1cate_d_2
01.5412721.00.00.027.6566053.19866789.6094640.01.00.0...0.246062-0.3520050.2206060.2206060.4941663.2793842.3063145.375338-0.9730702.095954
16.8023331.00.00.023.7983863.362415102.3372360.00.03.0...0.178897-0.3073600.2367160.2367160.4202782.8078502.0648534.274630-0.7429971.466780
28.0794491.00.00.028.4250093.391819102.6607120.01.01.0...0.210001-0.3201890.2180400.2180400.5024153.0699192.2287985.073677-0.8411212.003758
32.1368201.00.00.018.8600664.07117583.5934170.00.02.0...0.176239-0.3162410.2373940.2373940.4416772.7168051.9802344.225485-0.7365711.508680
41.5553910.01.00.017.8530873.14007579.2098700.01.01.0...0.231904-0.3501300.2468320.2468320.4936243.2243542.2718695.282273-0.9524852.057919

5 rows × 26 columns

Result
mean
d_00.501040
d_10.245720
d_20.253240
y4.308808
Result

{'d_1 vs d_0': -1.199206862416331, 'd_2 vs d_0': 2.5379024492441777}

Result

MultiCausalData(df=(25000, 12), treatment_names=['d_0', 'd_1', 'd_2'], control_treatment='d_0')outcome='y', confounders=['tenure_months', 'avg_sessions_week', 'spend_last_month', 'premium_user', 'urban_resident', 'support_tickets_q', 'discount_eligible', 'credit_utilization'], user_id=None,

Causalis: MultiTreatmentIRM

Result
d_1 vs d_0d_2 vs d_0
field
estimandATEATE
modelMultiTreatmentIRMMultiTreatmentIRM
value-1.2818 (ci_abs: -1.3781, -1.1855)2.3674 (ci_abs: 2.1994, 2.5354)
value_relative-32.0434 (ci_rel: -34.0579, -30.0289)59.1812 (ci_rel: 54.4420, 63.9205)
alpha0.05000.0500
p_value0.00000.0000
is_significantTrueTrue
n_treated61436331
n_control1252612526
treatment_mean2.93296.6318
control_mean3.80953.8095
time2026-02-222026-02-22

DoubleML: multitreatment realization (APOS)

Result

<doubleml.data.base_data.DoubleMLData at 0x1692cde80>

Result

coef std err t P>|t| 2.5 % 97.5 % 1 vs 0 -1.319629 0.044631 -29.567224 0.0 -1.407105 -1.232153 2 vs 0 2.471794 0.079695 31.015554 0.0 2.315594 2.627994

Result
contrastoracle_atecausalis_multitreatment_irmdoubleml_apos_contrastabs_diff_causalis_vs_dml
0d_1 vs d_0-1.199207-1.281841-1.3196290.037788
1d_2 vs d_02.5379022.3674432.4717940.104351