xtdml: Abstract class xtdml

xtdmlR Documentation

Abstract class xtdml

Description

Abstract base class that cannot be initialized.

Implementation of partially linear panel regression (PLPR) models with high-dimensional confounding variables and exogenous treatment variable within the double machine learning framework. It allows the estimation of the structural parameter (treatment effect) in static panel data models with fixed effects using panel data approaches established in Clarke and Polselli (2025). xtdml is built on the object-oriented DoubleML (Bach et al., 2024) using the mlr3 ecosystem.

Format

R6::R6Class object.

Active bindings

all_coef_theta

(matrix())
Estimates of the causal parameter(s) "theta" for the n_rep different sample splits after calling fit().

all_dml1_coef_theta

(array())
Estimates of the causal parameter(s) "theta" for the n_rep different sample splits after calling fit() with dml_procedure = "dml1".

all_se_theta

(matrix())
Standard errors of the causal parameter(s) "theta" for the n_rep different sample splits after calling fit().

all_model_rmse

(matrix())
Model root-mean-squared-error.

apply_cross_fitting

(logical(1))
Indicates whether cross-fitting should be applied. Default is TRUE.

coef_theta

(numeric())
Estimates for the causal parameter(s) "theta" after calling fit().

data

(data.table)
Data object.

dml_procedure

(character(1))
A character() ("dml1" or "dml2") specifying the double machine learning algorithm. Default is "dml2".

draw_sample_splitting

(logical(1))
Indicates whether the sample splitting should be drawn during initialization of the object. Default is TRUE.

learner

(named list())
The machine learners for the nuisance functions.

n_folds

(integer(1))
Number of folds. Default is 5.

n_rep

(integer(1))
Number of repetitions for the sample splitting. Default is 1.

params

(named list())
The hyperparameters of the learners.

psi_theta

(array())
Value of the score function \psi(W;\theta_0,\eta_0)=-\psi_a(W;\eta_0) \theta_0 + \psi_b(W;\eta_0) after calling fit().

psi_theta_a

(array())
Value of the score function component \psi_a(W;\eta_0) after calling fit().

psi_theta_b

(array())
Value of the score function component \psi_b(W;\eta_0) after calling fit().

res_y

(array())
Residual of output equation

res_d

(array())
Residual of treatment equation

predictions

(array())
Predictions of the nuisance models after calling fit(store_predictions=TRUE).

targets

(array())
Targets of the nuisance models after calling fit(store_predictions=TRUE).

rmses

(array())
The root-mean-squared-errors of the nuisance parameters

all_model_mse

(array())
Collection of all mean-squared-errors of the model

model_rmse

(array())
The root-mean-squared-errors of the model

models

(array())
The fitted nuisance models after calling fit(store_models=TRUE).

pval_theta

(numeric())
p-values for the causal parameter(s) "theta" after calling fit().

score

(character(1))
A character(1) specifying the score function among "orth-PO", "orth-IV". Default is "orth-PO".

se_theta

(numeric())
Standard errors for the causal parameter(s) "theta" after calling fit().

smpls

(list())
The partition used for cross-fitting.

smpls_cluster

(list())
The partition used for cross-fitting. smpl is at cluster-var

t_stat_theta

(numeric())
t-statistics for the causal parameter(s) "theta" after calling fit().

tuning_res_theta

(named list())
Results from hyperparameter tuning.

Methods

Public methods


Method new()

DML with FE is an abstract class that can't be initialized.

Usage
xtdml$new()

Method print()

Print 'DML with FE' objects.

Usage
xtdml$print()

Method fit()

Estimate DML models with FE.

Usage
xtdml$fit(store_predictions = FALSE, store_models = FALSE)
Arguments
store_predictions

(logical(1))
Indicates whether the predictions for the nuisance functions should be stored in field predictions. Default is FALSE.

store_models

(logical(1))
Indicates whether the fitted models for the nuisance functions should be stored in field models if you want to analyze the models or extract information like variable importance. Default is FALSE.

Returns

self


Method split_samples()

Draw sample splitting for Double ML models with FE.

The samples are drawn according to the attributes n_folds, n_rep and apply_cross_fitting.

Usage
xtdml$split_samples()
Returns

self


Method tune()

Hyperparameter-tuning for DML models with FE.

The hyperparameter-tuning is performed using the tuning methods provided in the mlr3tuning package. For more information on tuning in mlr3, we refer to the section on parameter tuning in the mlr3 book.

Usage
xtdml$tune(
  param_set,
  tune_settings = list(n_folds_tune = 5, rsmp_tune = mlr3::rsmp("cv", folds = 5), measure
    = NULL, terminator = mlr3tuning::trm("evals", n_evals = 20), algorithm =
    mlr3tuning::tnr("grid_search"), resolution = 5),
  tune_on_folds = FALSE
)
Arguments
param_set

(named list())
A named list with a parameter grid for each nuisance model/learner (see method learner_names()). The parameter grid must be an object of class ParamSet.

tune_settings

(named list())
A named list() with arguments passed to the hyperparameter-tuning with mlr3tuning to set up TuningInstance objects. tune_settings has entries

  • terminator (Terminator)
    A Terminator object. Specification of terminator is required to perform tuning.

  • algorithm (Tuner or character(1))
    A Tuner object (recommended) or key passed to the respective dictionary to specify the tuning algorithm used in tnr(). algorithm is passed as an argument to tnr(). If algorithm is not specified by the users, default is set to "grid_search". If set to "grid_search", then additional argument "resolution" is required.

  • rsmp_tune (Resampling or character(1))
    A Resampling object (recommended) or option passed to rsmp() to initialize a Resampling for parameter tuning in mlr3. If not specified by the user, default is set to "cv" (cross-validation).

  • n_folds_tune (integer(1), optional)
    If rsmp_tune = "cv", number of folds used for cross-validation. If not specified by the user, default is set to 5.

  • measure (NULL, named list(), optional)
    Named list containing the measures used for parameter tuning. Entries in list must either be Measure objects or keys to be passed to passed to msr(). The names of the entries must match the learner names (see method learner_names()). If set to NULL, default measures are used, i.e., "regr.mse" for continuous outcome variables and "classif.ce" for binary outcomes.

  • resolution (character(1))
    The key passed to the respective dictionary to specify the tuning algorithm used in tnr(). resolution is passed as an argument to tnr().

tune_on_folds

(logical(1))
Indicates whether the tuning should be done fold-specific or globally. Default is FALSE.

Returns

self


Method summary()

Summary for DML models with FE after calling fit().

Usage
xtdml$summary(digits = max(3L, getOption("digits") - 3L))
Arguments
digits

(integer(1))
The number of significant digits to use when printing.


Method confint()

Confidence intervals for DML models with FE.

Usage
xtdml$confint(parm, joint = FALSE, level = 0.95)
Arguments
parm

(numeric() or character())
A specification of which parameters are to be given confidence intervals among the variables for which inference was done, either a vector of numbers or a vector of names. If missing, all parameters are considered (default).

joint

(logical(1))
Indicates whether joint confidence intervals are computed. Default is FALSE.

level

(numeric(1))
The confidence level. Default is 0.95.

Returns

A matrix() with the confidence interval(s).


Method learner_names()

Returns the names of the learners.

Usage
xtdml$learner_names()
Returns

character() with names of learners.


Method params_names()

Returns the names of the nuisance models with hyperparameters.

Usage
xtdml$params_names()
Returns

character() with names of nuisance models with hyperparameters.


Method set_ml_nuisance_params()

Set hyperparameters for the nuisance models of DML models with FE.

Note that in the current implementation, either all parameters have to be set globally or all parameters have to be provided fold-specific.

Usage
xtdml$set_ml_nuisance_params(
  learner = NULL,
  treat_var = NULL,
  params,
  set_fold_specific = FALSE
)
Arguments
learner

(character(1))
The nuisance model/learner (see method params_names).

treat_var

(character(1))
The treatment variAble (hyperparameters can be set treatment-variable specific).

params

(named list())
A named list() with estimator parameters for time-varying covariates. Parameters are used for all folds by default. Alternatively, parameters can be passed in a fold-specific way if option fold_specificis TRUE. In this case, the outer list needs to be of length n_rep and the inner list of length n_folds_per_cluster.

set_fold_specific

(logical(1))
Indicates if the parameters passed in params should be passed in fold-specific way. Default is FALSE. If TRUE, the outer list needs to be of length n_rep and the inner list of length n_folds_per_cluster. Note that in the current implementation, either all parameters have to be set globally or all parameters have to be provided fold-specific.

Returns

self


Method get_params()

Get hyper-parameters for the nuisance model of xtdml models.

Usage
xtdml$get_params(learner)
Arguments
learner

(character(1))
The nuisance model/learner (see method params_names())

Returns

named list()with paramers for the nuisance model/learner.


Method clone()

The objects of this class are cloneable with this method.

Usage
xtdml$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

See Also

Other xtdml: xtdml_plr


xtdml documentation built on Sept. 9, 2025, 5:54 p.m.