Skip to content

Commit bfc9c91

Browse files
committed
test for initializer with IV-type score PLIV
1 parent 5dfe618 commit bfc9c91

File tree

1 file changed

+36
-63
lines changed

1 file changed

+36
-63
lines changed

tests/testthat/test-double_ml_pliv_partial_functional_initializer_IVtype.R

Lines changed: 36 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ if (on_cran) {
1313
test_cases = expand.grid(
1414
learner = c("regr.lm", "regr.cv_glmnet"),
1515
dml_procedure = c("dml1", "dml2"),
16-
score = c("IV-type"),
16+
score = "IV-type",
1717
stringsAsFactors = FALSE)
1818
}
1919
test_cases[".test_name"] = apply(test_cases, 1, paste, collapse = "_")
@@ -24,67 +24,40 @@ patrick::with_parameters_test_that("Unit tests for PLIV (partialX functional ini
2424
df = data_pliv$df
2525
Xnames = names(df)[names(df) %in% c("y", "d", "z", "z2") == FALSE]
2626
data_ml = double_ml_data_from_data_frame(df,
27-
y_col = "y",
28-
d_cols = "d", x_cols = Xnames, z_cols = "z")
29-
30-
if (score == "partialling out") {
31-
# Partial out X (default PLIV)
32-
set.seed(3141)
33-
double_mlpliv_obj = DoubleMLPLIV$new(data_ml,
34-
n_folds = 5,
35-
ml_l = learner_pars$ml_l$clone(),
36-
ml_m = learner_pars$ml_m$clone(),
37-
ml_r = learner_pars$ml_r$clone(),
38-
dml_procedure = dml_procedure,
39-
score = score)
40-
41-
double_mlpliv_obj$fit()
42-
theta_obj = double_mlpliv_obj$coef
43-
se_obj = double_mlpliv_obj$se
44-
45-
# Partial out X
46-
set.seed(3141)
47-
double_mlpliv_partX = DoubleMLPLIV.partialX(data_ml,
48-
n_folds = 5,
49-
ml_l = learner_pars$ml_l$clone(),
50-
ml_m = learner_pars$ml_m$clone(),
51-
ml_r = learner_pars$ml_r$clone(),
52-
dml_procedure = dml_procedure,
53-
score = score)
54-
} else if (score == "IV-type") {
55-
# Partial out X (default PLIV)
56-
set.seed(3141)
57-
double_mlpliv_obj = DoubleMLPLIV$new(data_ml,
58-
n_folds = 5,
59-
ml_l = learner_pars$ml_l$clone(),
60-
ml_m = learner_pars$ml_m$clone(),
61-
ml_r = learner_pars$ml_r$clone(),
62-
ml_g = learner_pars$ml_g$clone(),
63-
dml_procedure = dml_procedure,
64-
score = score)
65-
66-
double_mlpliv_obj$fit()
67-
theta_obj = double_mlpliv_obj$coef
68-
se_obj = double_mlpliv_obj$se
69-
70-
# Partial out X
71-
set.seed(3141)
72-
double_mlpliv_partX = DoubleMLPLIV.partialX(data_ml,
73-
n_folds = 5,
74-
ml_l = learner_pars$ml_l$clone(),
75-
ml_m = learner_pars$ml_m$clone(),
76-
ml_r = learner_pars$ml_r$clone(),
77-
ml_g = learner_pars$ml_g$clone(),
78-
dml_procedure = dml_procedure,
79-
score = score)
80-
81-
}
82-
83-
double_mlpliv_partX$fit()
84-
theta_partX = double_mlpliv_partX$coef
85-
se_partX = double_mlpliv_partX$se
86-
87-
expect_equal(theta_partX, theta_obj, tolerance = 1e-8)
88-
expect_equal(se_partX, se_obj, tolerance = 1e-8)
27+
y_col = "y",
28+
d_cols = "d", x_cols = Xnames, z_cols = "z")
29+
30+
# Partial out X (default PLIV)
31+
set.seed(3141)
32+
double_mlpliv_obj = DoubleMLPLIV$new(data_ml,
33+
n_folds = 5,
34+
ml_l = learner_pars$ml_l$clone(),
35+
ml_m = learner_pars$ml_m$clone(),
36+
ml_r = learner_pars$ml_r$clone(),
37+
ml_g = learner_pars$ml_g$clone(),
38+
dml_procedure = dml_procedure,
39+
score = score)
40+
41+
double_mlpliv_obj$fit()
42+
theta_obj = double_mlpliv_obj$coef
43+
se_obj = double_mlpliv_obj$se
44+
45+
# Partial out X
46+
set.seed(3141)
47+
double_mlpliv_partX = DoubleMLPLIV.partialX(data_ml,
48+
n_folds = 5,
49+
ml_l = learner_pars$ml_l$clone(),
50+
ml_m = learner_pars$ml_m$clone(),
51+
ml_r = learner_pars$ml_r$clone(),
52+
ml_g = learner_pars$ml_g$clone(),
53+
dml_procedure = dml_procedure,
54+
score = score)
55+
56+
double_mlpliv_partX$fit()
57+
theta_partX = double_mlpliv_partX$coef
58+
se_partX = double_mlpliv_partX$se
59+
60+
expect_equal(theta_partX, theta_obj, tolerance = 1e-8)
61+
expect_equal(se_partX, se_obj, tolerance = 1e-8)
8962
}
9063
)

0 commit comments

Comments
 (0)