Skip to content

Commit 1351efa

Browse files
committed
separated scripts into two for easier reproduction
1 parent 7e5822d commit 1351efa

2 files changed

Lines changed: 387 additions & 32 deletions

File tree

scripts/main-simulation-function-future-simul.R renamed to scripts/main-simulation-function-future-simul-part1.R

Lines changed: 21 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ seed <- 6384
1313
set.seed(seed) # set seed for reproducibility
1414
runname <- "April10_fullsimulation" # set a runname
1515
parametrization <- "mundlak" # set the parametrization (mundlak or centeredX)
16-
dir.create(paste0("simulation_results/", runname), showWarnings = FALSE) # create a directory
16+
dir.create(paste0("output/", runname), showWarnings = FALSE) # create a directory
1717

1818
# load libraries
1919
library(lme4) # for generalized linear mixed models
@@ -34,8 +34,7 @@ source("scripts/helper-functions/result-formatting.R")
3434
# set the number of simulations
3535
nsim <- 1000
3636

37-
# In the study, these simulations were run in two parts
38-
# Part 1: DGM 2, 3 and 4
37+
# Simulation Part 1: DGM 2, 3 and 4
3938
design <- expand.grid(N_total = c(100, 200), T_total = c(5, 10, 20),
4039
predictor.type = c("binary", "continuous"),
4140
outcome.type = c("binary", "continuous"),
@@ -48,25 +47,15 @@ design <- design[!(design$sdX.between == 0 & design$g.01 != 0),]
4847
# remove scenarios with predictor and outcome type continuous
4948
design <- design[!(design$predictor.type == "continuous" & design$outcome.type == "continuous"),]
5049

51-
# Part 2: DGM 1 (continuous predictor and outcome)
52-
# design <- expand.grid(N_total = c(100, 200), T_total = c(5, 10, 20),
53-
# predictor.type = "continuous", outcome.type = "continuous",
54-
# sdX.within = 1, sdX.between = c(0, 1, 3),
55-
# g.00 = 0, g.01 = c(0, 1, 3), g.10 = 1.5,
56-
# sd.u0 = c(0, 1, 3), sd.u1 = 0, sd.e = 1,
57-
# true_cluster_means = FALSE)
58-
# # remove scenarios with sdX.between == 0 and g.01 != 0
59-
# design <- design[!(design$sdX.between == 0 & design$g.01 != 0),]
60-
6150
# save the empty design and settings to the directory
6251
settings <- list(nsim = nsim, seed = seed, runname = runname, parametrization = parametrization, design = design)
63-
saveRDS(settings, paste0("simulation_results/", runname, "/settings.RDS"))
52+
saveRDS(settings, paste0("output/", runname, "/settings.RDS"))
6453

6554
### Simulation ---------------------------------------------------------------
6655

6756
# Open a connection to capture output and messages
68-
output_conn <- file(paste0("simulation_results/", runname, "/log.txt"), open = "a")
69-
message_conn <- file(paste0("simulation_results/", runname, "/log.txt"), open = "a")
57+
output_conn <- file(paste0("output/", runname, "/log.txt"), open = "a")
58+
message_conn <- file(paste0("output/", runname, "/log.txt"), open = "a")
7059

7160
# Redirect output and messages to the file
7261
sink(output_conn, type = "output")
@@ -111,7 +100,7 @@ for (idesign in 1:nrow(design)) {
111100
models <- glmm_model_fitting(data, outcome.type = outcome.type)
112101
return(models)
113102
}
114-
saveRDS(parallel_results, file = paste0("simulation_results/", runname, "/", idesign, ".RDS"))
103+
saveRDS(parallel_results, file = paste0("output/", runname, "/", idesign, ".RDS"))
115104
}
116105

117106
# Stop capturing output and messages
@@ -127,8 +116,8 @@ close(message_conn)
127116
if(FALSE) {
128117
# runname <- "April10_fullsimulation"
129118
runname <- "April17_fullsimulation_contXY"
130-
design <- readRDS(paste0("simulation_results/", runname, "/settings.RDS"))$design
131-
parametrization <- readRDS(paste0("simulation_results/", runname, "/settings.RDS"))$parametrization
119+
design <- readRDS(paste0("output/", runname, "/settings.RDS"))$design
120+
parametrization <- readRDS(paste0("output/", runname, "/settings.RDS"))$parametrization
132121
}
133122

134123
# load packages
@@ -192,7 +181,7 @@ for (idesign in 1:nrow(design_all)) {
192181
}
193182

194183
# read in the results
195-
parallel_results_setting <- readRDS(paste0("simulation_results/", runname, "/", idesign, ".RDS"))
184+
parallel_results_setting <- readRDS(paste0("output/", runname, "/", idesign, ".RDS"))
196185

197186
# unlist the lists inside the list
198187
df <- map_dfr(parallel_results_setting, function(rep) {
@@ -329,7 +318,7 @@ design_all_reordered <- design_all %>%
329318
g.independence4_success, g.exchangeable4_success, g.ar14_success)
330319

331320
# save design
332-
saveRDS(design_all_reordered, paste0("simulation_results/", runname, "/summary-results-all.RDS"))
321+
saveRDS(design_all_reordered, paste0("output/", runname, "/summary-results-all.RDS"))
333322

334323
# create a rounded version of the design
335324
design_all_rounded <- design_all_reordered %>%
@@ -339,24 +328,24 @@ design_all_rounded <- design_all_reordered %>%
339328
across(ends_with("success"), ~ round(., 3)))
340329

341330
# save design
342-
saveRDS(design_all_rounded, paste0("simulation_results/", runname, "/summary-results-all-rounded.RDS"))
331+
saveRDS(design_all_rounded, paste0("output/", runname, "/summary-results-all-rounded.RDS"))
343332

344333
# remove all bias columns
345334
design_absolute <- design_all_rounded %>%
346335
select(-contains("g.10_bias"), -contains("g.01_bias"))
347336

348337
# save design
349-
saveRDS(design_absolute, paste0("simulation_results/", runname, "/summary-results-absolute.RDS"))
350-
write.csv(design_absolute, paste0("simulation_results/", runname, "/summary-results-absolute.csv"), row.names = FALSE)
338+
saveRDS(design_absolute, paste0("output/", runname, "/summary-results-absolute.RDS"))
339+
write.csv(design_absolute, paste0("output/", runname, "/summary-results-absolute.csv"), row.names = FALSE)
351340

352341
# remove absolute value columns
353342
design_bias <- design_all_rounded %>%
354343
# if endswith X, X.cent, X.cluster.means, remove
355344
select(-ends_with("X", ignore.case = FALSE), -ends_with("X.cent", ignore.case = FALSE), -ends_with("X.cluster.means", ignore.case = FALSE))
356345

357346
# save design
358-
saveRDS(design_bias, paste0("simulation_results/", runname, "/summary-results-bias.RDS"))
359-
write.csv(design_bias, paste0("simulation_results/", runname, "/summary-results-bias.csv"), row.names = FALSE)
347+
saveRDS(design_bias, paste0("output/", runname, "/summary-results-bias.RDS"))
348+
write.csv(design_bias, paste0("output/", runname, "/summary-results-bias.csv"), row.names = FALSE)
360349

361350
# create separate versions containing the within-person and contextual effect
362351
design_bias_g01 <- design_bias %>%
@@ -365,16 +354,16 @@ design_bias_g10 <- design_bias %>%
365354
select(-contains("g.01_bias"))
366355

367356
# save design
368-
saveRDS(design_bias_g01, paste0("simulation_results/", runname, "/summary-results-bias-g01.RDS"))
369-
write.csv(design_bias_g01, paste0("simulation_results/", runname, "/summary-results-bias-g01.csv"), row.names = FALSE)
370-
saveRDS(design_bias_g10, paste0("simulation_results/", runname, "/summary-results-bias-g10.RDS"))
371-
write.csv(design_bias_g10, paste0("simulation_results/", runname, "/summary-results-bias-g10.csv"), row.names = FALSE)
357+
saveRDS(design_bias_g01, paste0("output/", runname, "/summary-results-bias-g01.RDS"))
358+
write.csv(design_bias_g01, paste0("output/", runname, "/summary-results-bias-g01.csv"), row.names = FALSE)
359+
saveRDS(design_bias_g10, paste0("output/", runname, "/summary-results-bias-g10.RDS"))
360+
write.csv(design_bias_g10, paste0("output/", runname, "/summary-results-bias-g10.csv"), row.names = FALSE)
372361

373362
# save sucess rates
374363
design_success <- design_all_rounded %>%
375364
select(c(N_total, T_total, predictor.type, outcome.type, sdX.within, sdX.between,
376365
g.00, g.01, g.10, sd.u0, sd.u1, sd.e, true_cluster_means, contains("success")))
377366

378367
# save design
379-
saveRDS(design_success, paste0("simulation_results/", runname, "/summary-results-success.RDS"))
380-
write.csv(design_success, paste0("simulation_results/", runname, "/summary-results-success.csv"), row.names = FALSE)
368+
saveRDS(design_success, paste0("output/", runname, "/summary-results-success.RDS"))
369+
write.csv(design_success, paste0("output/", runname, "/summary-results-success.csv"), row.names = FALSE)

0 commit comments

Comments
 (0)