Double machine learning for partially linear regression models.

Format

R6::R6Class object inheriting from DoubleML.

Details

Partially linear regression (PLR) models take the form

$$Y = D\theta_0 + g_0(X) + \zeta,$$

$$D = m_0(X) + V,$$

with $$E[\zeta|D,X]=0$$ and $$E[V|X] = 0$$. $$Y$$ is the outcome variable variable and $$D$$ is the policy variable of interest. The high-dimensional vector $$X = (X_1, \ldots, X_p)$$ consists of other confounding covariates, and $$\zeta$$ and $$V$$ are stochastic errors.

Other DoubleML: DoubleMLIIVM, DoubleMLIRM, DoubleMLPLIV, DoubleML

Super class

DoubleML::DoubleML -> DoubleMLPLR

Methods

Public methods

Inherited methods

Method new()

Creates a new instance of this R6 class.

Arguments

deep

Whether to make a deep clone.

Examples

# \donttest{
library(DoubleML)
library(mlr3)
library(mlr3learners)
library(data.table)
set.seed(2)
ml_g = lrn("regr.ranger", num.trees = 10, max.depth = 2)
ml_m = ml_g$clone() obj_dml_data = make_plr_CCDDHNR2018(alpha = 0.5) dml_plr_obj = DoubleMLPLR$new(obj_dml_data, ml_g, ml_m)
dml_plr_obj$fit() dml_plr_obj$summary()
#> Estimates and significance testing of the effect of target variables
#>   Estimate. Std. Error t value Pr(>|t|)
#> d   0.49142    0.03768   13.04   <2e-16 ***
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> # }

if (FALSE) {
library(DoubleML)
library(mlr3)
library(mlr3learners)
library(mlr3tuning)
library(data.table)
set.seed(2)
ml_g = lrn("regr.rpart")
ml_m = ml_g$clone() obj_dml_data = make_plr_CCDDHNR2018(alpha = 0.5) dml_plr_obj = DoubleMLPLR$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_plr_obj$tune(param_set = param_grid, tune_settings = tune_settings) dml_plr_obj$fit()
dml_plr_obj\$summary()
}