# DoubleMLIRM: Double machine learning for interactive regression models In DoubleML: Double Machine Learning in R

## Description

Double machine learning for interactive regression models.

## Format

R6::R6Class object inheriting from DoubleML.

## Details

Interactive regression (IRM) models take the form

Y = g_0(D,X) + U,

D = m_0(X) + V,

with E[U|X,D]=0 and E[V|X] = 0. Y is the outcome variable and D \in \{0,1\} is the binary treatment variable. We consider estimation of the average treamtent effects when treatment effects are fully heterogeneous. Target parameters of interest in this model are the average treatment effect (ATE),

θ_0 = E[g_0(1,X) - g_0(0,X)]

and the average treament effect on the treated (ATTE),

θ_0 = E[g_0(1,X) - g_0(0,X)|D=1].

## Super class

DoubleML::DoubleML -> DoubleMLIRM

## Active bindings

trimming_rule

(character(1))
A character(1) specifying the trimming approach.

trimming_threshold

(numeric(1))
The threshold used for timming.

## Methods

#### Public methods

Inherited methods

#### Method new()

Creates a new instance of this R6 class.

##### Arguments
deep

Whether to make a deep clone.

Other DoubleML: DoubleMLIIVM, DoubleMLPLIV, DoubleMLPLR, DoubleML

## Examples

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 library(DoubleML) library(mlr3) library(mlr3learners) library(data.table) set.seed(2) ml_g = lrn("regr.ranger", num.trees = 100, mtry = 20, min.node.size = 2, max.depth = 5) ml_m = lrn("classif.ranger", num.trees = 100, mtry = 20, min.node.size = 2, max.depth = 5) obj_dml_data = make_irm_data(theta = 0.5) dml_irm_obj = DoubleMLIRM$new(obj_dml_data, ml_g, ml_m) dml_irm_obj$fit() dml_irm_obj$summary() ## Not run: library(DoubleML) library(mlr3) library(mlr3learners) library(mlr3uning) library(data.table) set.seed(2) ml_g = lrn("regr.rpart") ml_m = lrn("classif.rpart") obj_dml_data = make_irm_data(theta = 0.5) dml_irm_obj = DoubleMLIRM$new(obj_dml_data, ml_g, ml_m) param_grid = list( "ml_g" = paradox::ParamSet$new(list( paradox::ParamDbl$new("cp", lower = 0.01, upper = 0.02), paradox::ParamInt$new("minsplit", lower = 1, upper = 2))), "ml_m" = paradox::ParamSet$new(list( paradox::ParamDbl$new("cp", lower = 0.01, upper = 0.02), paradox::ParamInt$new("minsplit", lower = 1, upper = 2)))) # minimum requirements for tune_settings tune_settings = list( terminator = mlr3tuning::trm("evals", n_evals = 5), algorithm = mlr3tuning::tnr("grid_search", resolution = 5)) dml_irm_obj$tune(param_set = param_grid, tune_settings = tune_settings) dml_irm_obj$fit() dml_irm_obj\$summary() ## End(Not run) 

DoubleML documentation built on Oct. 26, 2021, 5:06 p.m.