-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCRC_GAN_sim.R
468 lines (388 loc) · 26.7 KB
/
CRC_GAN_sim.R
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
source('./src/dependencies.R')
params_save_name <- '2,8,32,128,256,2,6,10_1,1,1,1,1,2,2,2'
load(paste0("./params/simulation_parameters_CRC_GAN_", params_save_name, ".RData"))
simulation_parameters_CRC_GAN$n <- 5000
simulation_parameters_CRC_GAN$reps <- 200
simulation_parameters_CRC_GAN$save_name <- params_save_name
simulation_parameters_CRC_GAN$num_cores <- 10
df_generated <- read.csv('./df_generated_final.csv', nrows=10000000) %>% filter(!row_number() %in% simulation_parameters_CRC_GAN$oracle_tr_sample_ids)
with(simulation_parameters_CRC_GAN, {
if (num_cores != 1) {
cl <- makeCluster(num_cores); cl_stop <- TRUE
clusterEvalQ(cl, {
library(tidyverse)
library(SMUT)
library(splines)
library(gbm)
library(ranger)
library(caret)
library(glmnet)
library(pbapply)
})
clusterExport(cl, 'df_generated')
}
else {cl <- 1; cl_stop <- FALSE}
sim_out <- pbsapply (1:reps, function(rep) {
source('./src/estimation_functions.R')
##########################################################
## Simulate estimation sample
##########################################################
sim_data_est <- df_generated %>%
sample_n(n, replace=F) %>%
dplyr::select(-c(id, death_90_cf_surg_approach_open1, death_90_cf_surg_approach_open0))
basis_est <- c(
lapply(1:length(K), function(k) {
create_b_spline_basis(
data = sim_data_est,
continuous_vars = c('distance', 'age', 'tumor_size', 'days_from_dx_to_def_surg'),
binary_vars = names(sim_data_est)[!(names(sim_data_est) %in%
c('distance', 'age', 'tumor_size', 'days_from_dx_to_def_surg', 'X', 'Y'))],
knots = knots[[k]], boundary_knots = boundary_knots[[k]],
degree_of_interactions = degree_of_interactions[k],
polynomial_degree = polynomial_degree[k]
)
})
)
sigma_est_eff1 <- c('est' = compute_sigma(basis = basis_est,
trt = sim_data_est$X))
sigma_est_eff0 <- c('est' = compute_sigma(basis = basis_est,
trt = 1-sim_data_est$X))
##########################################################
## compute estimates of the nuisance parameters in estimation data
##########################################################
prob_trt1_stacked_classifier <- estimate_prob_stacked_classifier(covariates_df = sim_data_tr %>% dplyr::select(c(age, days_from_dx_to_def_surg, tumor_size, distance)),
label_vector = sim_data_tr %>% dplyr::select(X) %>% {.[[1]]},
params_boosted_tree = params_boosted_tree_trt,
params_random_forest = params_random_forest_trt,
params_knn = params_knn_trt,
params_lasso = params_lasso_trt,
params_glm = params_glm_trt,
meta_model = meta_model_trt$meta_model,
meta_model_formula = meta_model_trt$meta_model_formula,
predict_data = sim_data_est %>% dplyr::select(c(age, days_from_dx_to_def_surg, tumor_size, distance)))
prob_outcome1_trt1_stacked_classifier <- estimate_prob_stacked_classifier(covariates_df = sim_data_tr %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, tumor_size, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params_boosted_tree = params_boosted_tree_outcome,
params_random_forest = params_random_forest_outcome,
params_knn = params_knn_outcome,
params_lasso = params_lasso_outcome,
params_glm = params_glm_outcome,
meta_model = meta_model_outcome$meta_model,
meta_model_formula = meta_model_outcome$meta_model_formula,
predict_data = sim_data_est %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, tumor_size, distance)) %>% mutate(X = 1))
prob_outcome1_trt0_stacked_classifier <- estimate_prob_stacked_classifier(covariates_df = sim_data_tr %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, tumor_size, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params_boosted_tree = params_boosted_tree_outcome,
params_random_forest = params_random_forest_outcome,
params_knn = params_knn_outcome,
params_lasso = params_lasso_outcome,
params_glm = params_glm_outcome,
meta_model = meta_model_outcome$meta_model,
meta_model_formula = meta_model_outcome$meta_model_formula,
predict_data = sim_data_est %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, tumor_size, distance)) %>% mutate(X = 0))
prob_trt1_boosted_tree <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(age, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(X) %>% {.[[1]]},
params = params_boosted_tree_trt,
model = "boosted_tree",
predict_data = sim_data_est %>% dplyr::select(c(age, days_from_dx_to_def_surg, distance)))
prob_outcome1_trt1_boosted_tree <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_boosted_tree_outcome,
model = "boosted_tree",
predict_data = sim_data_est %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, distance)) %>% mutate(X = 1))
prob_outcome1_trt0_boosted_tree <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_boosted_tree_outcome,
model = "boosted_tree",
predict_data = sim_data_est %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, distance)) %>% mutate(X = 0))
prob_trt1_random_forest <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(age, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(X) %>% {.[[1]]},
params = params_random_forest_trt,
model = "random_forest",
predict_data = sim_data_est %>% dplyr::select(c(age, days_from_dx_to_def_surg, distance)))
prob_outcome1_trt1_random_forest <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_random_forest_outcome,
model = "random_forest",
predict_data = sim_data_est %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, distance)) %>% mutate(X = 1))
prob_outcome1_trt0_random_forest <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_random_forest_outcome,
model = "random_forest",
predict_data = sim_data_est %>% dplyr::select(c(X, age, days_from_dx_to_def_surg, distance)) %>% mutate(X = 0))
prob_trt1_knn <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(X) %>% {.[[1]]},
params = params_knn_trt,
model = "knn",
predict_data = sim_data_est %>% dplyr::select(c(days_from_dx_to_def_surg, distance)))
prob_outcome1_trt1_knn <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_knn_outcome,
model = "knn",
predict_data = sim_data_est %>% dplyr::select(c(X, days_from_dx_to_def_surg, distance)) %>% mutate(X = 1))
prob_outcome1_trt0_knn <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_knn_outcome,
model = "knn",
predict_data = sim_data_est %>% dplyr::select(c(X, days_from_dx_to_def_surg, distance)) %>% mutate(X = 0))
prob_trt1_lasso <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(days_from_dx_to_def_surg, tumor_size, distance)),
label_vector = sim_data_tr %>% dplyr::select(X) %>% {.[[1]]},
params = params_lasso_trt,
model = "lasso",
predict_data = sim_data_est %>% dplyr::select(c(days_from_dx_to_def_surg, tumor_size, distance)))
prob_outcome1_trt1_lasso <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, days_from_dx_to_def_surg, tumor_size, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_lasso_outcome,
model = "lasso",
predict_data = sim_data_est %>% dplyr::select(c(X, days_from_dx_to_def_surg, tumor_size, distance)) %>% mutate(X = 1))
prob_outcome1_trt0_lasso <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, days_from_dx_to_def_surg, tumor_size, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_lasso_outcome,
model = "lasso",
predict_data = sim_data_est %>% dplyr::select(c(X, days_from_dx_to_def_surg, tumor_size, distance)) %>% mutate(X = 0))
prob_trt1_glm <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(X) %>% {.[[1]]},
params = params_glm_trt,
model = "glm",
predict_data = sim_data_est %>% dplyr::select(c(days_from_dx_to_def_surg, distance)))
prob_outcome1_trt1_glm <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_glm_outcome,
model = "glm",
predict_data = sim_data_est %>% dplyr::select(c(X, days_from_dx_to_def_surg, distance)) %>% mutate(X = 1))
prob_outcome1_trt0_glm <- estimate_prob_individual_model(covariates_df = sim_data_tr %>% dplyr::select(c(X, days_from_dx_to_def_surg, distance)),
label_vector = sim_data_tr %>% dplyr::select(Y) %>% {.[[1]]},
params = params_glm_outcome,
model = "glm",
predict_data = sim_data_est %>% dplyr::select(c(X, days_from_dx_to_def_surg, distance)) %>% mutate(X = 0))
estimate_AIPW_stacked <-
estimate_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_stacked_classifier,
prob_outcome1_trt1 = prob_outcome1_trt1_stacked_classifier,
prob_outcome1_trt0 = prob_outcome1_trt0_stacked_classifier
)
estimate_var_AIPW_stacked <-
estimate_var_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_stacked_classifier,
prob_outcome1_trt1 = prob_outcome1_trt1_stacked_classifier,
prob_outcome1_trt0 = prob_outcome1_trt0_stacked_classifier
)
estimate_AIPW_boosted_tree <-
estimate_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_boosted_tree,
prob_outcome1_trt1 = prob_outcome1_trt1_boosted_tree,
prob_outcome1_trt0 = prob_outcome1_trt0_boosted_tree
)
estimate_var_AIPW_boosted_tree <-
estimate_var_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_boosted_tree,
prob_outcome1_trt1 = prob_outcome1_trt1_boosted_tree,
prob_outcome1_trt0 = prob_outcome1_trt0_boosted_tree
)
estimate_AIPW_random_forest <-
estimate_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_random_forest,
prob_outcome1_trt1 = prob_outcome1_trt1_random_forest,
prob_outcome1_trt0 = prob_outcome1_trt0_random_forest
)
estimate_var_AIPW_random_forest <-
estimate_var_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_random_forest,
prob_outcome1_trt1 = prob_outcome1_trt1_random_forest,
prob_outcome1_trt0 = prob_outcome1_trt0_random_forest
)
estimate_AIPW_knn <-
estimate_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_knn,
prob_outcome1_trt1 = prob_outcome1_trt1_knn,
prob_outcome1_trt0 = prob_outcome1_trt0_knn
)
estimate_var_AIPW_knn <-
estimate_var_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_knn,
prob_outcome1_trt1 = prob_outcome1_trt1_knn,
prob_outcome1_trt0 = prob_outcome1_trt0_knn
)
estimate_AIPW_lasso <-
estimate_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_lasso,
prob_outcome1_trt1 = prob_outcome1_trt1_lasso,
prob_outcome1_trt0 = prob_outcome1_trt0_lasso
)
estimate_var_AIPW_lasso <-
estimate_var_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_lasso,
prob_outcome1_trt1 = prob_outcome1_trt1_lasso,
prob_outcome1_trt0 = prob_outcome1_trt0_lasso
)
estimate_AIPW_glm <-
estimate_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_glm,
prob_outcome1_trt1 = prob_outcome1_trt1_glm,
prob_outcome1_trt0 = prob_outcome1_trt0_glm
)
estimate_var_AIPW_glm <-
estimate_var_AIPW(
trt = sim_data_est$X,
outcome = sim_data_est$Y,
prob_trt1 = prob_trt1_glm,
prob_outcome1_trt1 = prob_outcome1_trt1_glm,
prob_outcome1_trt0 = prob_outcome1_trt0_glm
)
##########################################################
## compute IF22 with Gram matrix computed from
# 1) large separate sample (oracle),
# 2) training sample (including non-linear shrinkage version), and
# 3) estimation sample
##########################################################
HOIF_stacked_eff1 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = sim_data_est$X, pred = prob_trt1_stacked_classifier, type = 'trt'),
y_resid = compute_resid(trt = sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt1_stacked_classifier, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff1, sigma_tr_eff1, sigma_est_eff1),
num_cores = 1
)
HOIF_stacked_eff0 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = 1-sim_data_est$X, pred = 1-prob_trt1_stacked_classifier, type = 'trt'),
y_resid = compute_resid(trt = 1-sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt0_stacked_classifier, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff0, sigma_tr_eff0, sigma_est_eff0),
num_cores = 1
)
HOIF_boosted_tree_eff1 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = sim_data_est$X, pred = prob_trt1_boosted_tree, type = 'trt'),
y_resid = compute_resid(trt = sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt1_boosted_tree, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff1, sigma_tr_eff1, sigma_est_eff1),
num_cores = 1
)
HOIF_boosted_tree_eff0 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = 1-sim_data_est$X, pred = 1-prob_trt1_boosted_tree, type = 'trt'),
y_resid = compute_resid(trt = 1-sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt0_boosted_tree, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff0, sigma_tr_eff0, sigma_est_eff0),
num_cores = 1
)
HOIF_random_forest_eff1 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = sim_data_est$X, pred = prob_trt1_random_forest, type = 'trt'),
y_resid = compute_resid(trt = sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt1_random_forest, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff1, sigma_tr_eff1, sigma_est_eff1),
num_cores = 1
)
HOIF_random_forest_eff0 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = 1-sim_data_est$X, pred = 1-prob_trt1_random_forest, type = 'trt'),
y_resid = compute_resid(trt = 1-sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt0_random_forest, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff0, sigma_tr_eff0, sigma_est_eff0),
num_cores = 1
)
HOIF_knn_eff1 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = sim_data_est$X, pred = prob_trt1_knn, type = 'trt'),
y_resid = compute_resid(trt = sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt1_knn, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff1, sigma_tr_eff1, sigma_est_eff1),
num_cores = 1
)
HOIF_knn_eff0 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = 1-sim_data_est$X, pred = 1-prob_trt1_knn, type = 'trt'),
y_resid = compute_resid(trt = 1-sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt0_knn, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff0, sigma_tr_eff0, sigma_est_eff0),
num_cores = 1
)
HOIF_lasso_eff1 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = sim_data_est$X, pred = prob_trt1_lasso, type = 'trt'),
y_resid = compute_resid(trt = sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt1_lasso, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff1, sigma_tr_eff1, sigma_est_eff1),
num_cores = 1
)
HOIF_lasso_eff0 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = 1-sim_data_est$X, pred = 1-prob_trt1_lasso, type = 'trt'),
y_resid = compute_resid(trt = 1-sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt0_lasso, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff0, sigma_tr_eff0, sigma_est_eff0),
num_cores = 1
)
HOIF_glm_eff1 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = sim_data_est$X, pred = prob_trt1_glm, type = 'trt'),
y_resid = compute_resid(trt = sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt1_glm, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff1, sigma_tr_eff1, sigma_est_eff1),
num_cores = 1
)
HOIF_glm_eff0 <- compute_HOIF_sequence(
a_resid = compute_resid(trt = 1-sim_data_est$X, pred = 1-prob_trt1_glm, type = 'trt'),
y_resid = compute_resid(trt = 1-sim_data_est$X, outcome = sim_data_est$Y, pred = prob_outcome1_trt0_glm, type = 'outcome'),
basis = rep(basis_est, 3),
sigma = c(sigma_oracle_eff0, sigma_tr_eff0, sigma_est_eff0),
num_cores = 1
)
list(
Y_1_stacked = estimate_AIPW_stacked$Y_1,
Y_1_boosted_tree = estimate_AIPW_boosted_tree$Y_1,
Y_1_random_forest = estimate_AIPW_random_forest$Y_1,
Y_1_knn = estimate_AIPW_knn$Y_1,
Y_1_lasso = estimate_AIPW_lasso$Y_1,
Y_1_glm = estimate_AIPW_glm$Y_1,
Y_0_stacked = estimate_AIPW_stacked$Y_0,
Y_0_boosted_tree = estimate_AIPW_boosted_tree$Y_0,
Y_0_random_forest = estimate_AIPW_random_forest$Y_0,
Y_0_knn = estimate_AIPW_knn$Y_0,
Y_0_lasso = estimate_AIPW_lasso$Y_0,
Y_0_glm = estimate_AIPW_glm$Y_0,
var_Y_1_stacked = estimate_var_AIPW_stacked$Y_1,
var_Y_1_boosted_tree = estimate_var_AIPW_boosted_tree$Y_1,
var_Y_1_random_forest = estimate_var_AIPW_random_forest$Y_1,
var_Y_1_knn = estimate_var_AIPW_knn$Y_1,
var_Y_1_lasso = estimate_var_AIPW_lasso$Y_1,
var_Y_1_glm = estimate_var_AIPW_glm$Y_1,
var_Y_0_stacked = estimate_var_AIPW_stacked$Y_0,
var_Y_0_boosted_tree = estimate_var_AIPW_boosted_tree$Y_0,
var_Y_0_random_forest = estimate_var_AIPW_random_forest$Y_0,
var_Y_0_knn = estimate_var_AIPW_knn$Y_0,
var_Y_0_lasso = estimate_var_AIPW_lasso$Y_0,
var_Y_0_glm = estimate_var_AIPW_glm$Y_0,
HOIF_stacked_eff1 = HOIF_stacked_eff1,
HOIF_boosted_tree_eff1 = HOIF_boosted_tree_eff1,
HOIF_random_forest_eff1 = HOIF_random_forest_eff1,
HOIF_knn_eff1 = HOIF_knn_eff1,
HOIF_lasso_eff1 = HOIF_lasso_eff1,
HOIF_glm_eff1 = HOIF_glm_eff1,
HOIF_stacked_eff0 = HOIF_stacked_eff0,
HOIF_boosted_tree_eff0 = HOIF_boosted_tree_eff0,
HOIF_random_forest_eff0 = HOIF_random_forest_eff0,
HOIF_knn_eff0 = HOIF_knn_eff0,
HOIF_lasso_eff0 = HOIF_lasso_eff0,
HOIF_glm_eff0 = HOIF_glm_eff0
)
}, cl=cl)
if(cl_stop) {stopCluster(cl)}
save(sim_out, file=paste0("./output/CRC_GAN_sim_",
simulation_parameters_CRC_GAN$n, "_",
simulation_parameters_CRC_GAN$reps, "_",
simulation_parameters_CRC_GAN$save_name, ".RData"))
})