Research2 min read

Benchmark MultiTreatmentIRM vs DoubleML Multitreatment (APOS)

Automated conversion of doubleml_multitreatment_benchmark.ipynb

Benchmark MultiTreatmentIRM vs DoubleML Multitreatment (APOS)

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