Skip to content

Commit 85dcb6a

Browse files
committed
chore(rmarkdown): re-run all rmarkdown 🎉 all results are the same 🥳 (only change is in logs - printing dist / dist_config etc., and as all the destination codes 1 2 3 esd etc. are now consistent - a happy benefit of the changes!) (#11)
1 parent 29d1a15 commit 85dcb6a

File tree

7 files changed

+599
-259
lines changed

7 files changed

+599
-259
lines changed

outputs/log_example.log

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
Parameters:
2-
asu_arrivals=list(stroke = 1.2, tia = 9.3, neuro = 3.6, other = 3.2);
3-
rehab_arrivals=list(stroke = 3, neuro = 31.7, other = 28.6);
4-
asu_los=list(stroke_no_esd = list(mean = 7.4, sd = 8.61), stroke_esd = list(mean = 4.6, sd = 4.8), stroke_mortality = list(mean = 7, sd = 8.7), tia = list(mean = 1.8, sd = 2.3), neuro = list(mean = 4, sd = 5), other = list(mean = 3.8, sd = 5.2));
5-
rehab_los=list(stroke_no_esd = list(mean = 28.4, sd = 27.2), stroke_esd = list(mean = 30.3, sd = 23.1), tia = list(mean = 18.7, sd = 23.5), neuro = list(mean = 27.6, sd = 28.4), other = list(mean = 16.1, sd = 14.1));
6-
asu_routing=list(stroke = list(rehab = 0.24, esd = 0.13, other = 0.63), tia = list(rehab = 0.01, esd = 0.01, other = 0.98), neuro = list(rehab = 0.11, esd = 0.05, other = 0.84), other = list(rehab = 0.05, esd = 0.1, other = 0.85));
7-
rehab_routing=list(stroke = list(esd = 0.4, other = 0.6), tia = list(esd = 0, other = 1), neuro = list(esd = 0.09, other = 0.91), other = list(esd = 0.13, other = 0.88));
2+
dist_config=list(asu_arrival_stroke = list(class_name = "exponential", params = list(mean = 1.2)), asu_arrival_tia = list(class_name = "exponential", params = list(mean = 9.3)), asu_arrival_neuro = list(class_name = "exponential", params = list(mean = 3.6)), asu_arrival_other = list(class_name = "exponential", params = list(mean = 3.2)), rehab_arrival_stroke = list(class_name = "exponential", params = list(mean = 3)), rehab_arrival_neuro = list(class_name = "exponential", params = list(mean = 31.7)), rehab_arrival_other = list(
3+
class_name = "exponential", params = list(mean = 28.6)), asu_los_stroke_noesd = list(class_name = "lognormal", params = list(mean = 7.4, sd = 8.61)), asu_los_stroke_esd = list(class_name = "lognormal", params = list(mean = 4.6, sd = 4.8)), asu_los_stroke_mortality = list(class_name = "lognormal", params = list(mean = 7, sd = 8.7)), asu_los_tia = list(class_name = "lognormal", params = list(mean = 1.8, sd = 2.3)), asu_los_neuro = list(class_name = "lognormal", params = list(mean = 4, sd = 5)),
4+
asu_los_other = list(class_name = "lognormal", params = list(mean = 3.8, sd = 5.2)), rehab_los_stroke_noesd = list(class_name = "lognormal", params = list(mean = 28.4, sd = 27.2)), rehab_los_stroke_esd = list(class_name = "lognormal", params = list(mean = 30.3, sd = 23.1)), rehab_los_tia = list(class_name = "lognormal", params = list(mean = 18.7, sd = 23.5)), rehab_los_neuro = list(class_name = "lognormal", params = list(mean = 27.6, sd = 28.4)), rehab_los_other = list(class_name = "lognormal",
5+
params = list(mean = 16.1, sd = 14.1)), asu_routing_stroke = list(class_name = "discrete", params = list(values = list("rehab", "esd", "other"), prob = list(0.24, 0.13, 0.63))), asu_routing_tia = list(class_name = "discrete", params = list(values = list("rehab", "esd", "other"), prob = list(0.01, 0.01, 0.98))), asu_routing_neuro = list(class_name = "discrete", params = list(values = list("rehab", "esd", "other"), prob = list(0.11, 0.05, 0.84))), asu_routing_other = list(class_name = "discrete",
6+
params = list(values = list("rehab", "esd", "other"), prob = list(0.05, 0.1, 0.85))), rehab_routing_stroke = list(class_name = "discrete", params = list(values = list("esd", "other"), prob = list(0.4, 0.6))), rehab_routing_tia = list(class_name = "discrete", params = list(values = list("esd", "other"), prob = list(0, 1))), rehab_routing_neuro = list(class_name = "discrete", params = list(values = list("esd", "other"), prob = list(0.09, 0.91))), rehab_routing_other = list(class_name = "discrete",
7+
params = list(values = list("esd", "other"), prob = list(0.13, 0.88))));
88
warm_up_period=3;
99
data_collection_period=5;
1010
number_of_runs=1;
@@ -14,8 +14,40 @@ asu_arrivals=list(stroke = 1.2, tia = 9.3, neuro = 3.6, other = 3.2);
1414
log_to_file=TRUE;
1515
file_path=../outputs/log_example.log;
1616
verbose=TRUE;
17-
asu_los_lnorm=list(stroke_no_esd = list(meanlog = 1.57347219029677, sdlog = 0.925211121759084), stroke_esd = list(meanlog = 1.15775021244827, sdlog = 0.858261138636461), stroke_mortality = list(meanlog = 1.47890496960638, sdlog = 0.966442113578391), tia = list(meanlog = 0.103778649052444, sdlog = 0.983878057331979), neuro = list(meanlog = 0.915802688887627, sdlog = 0.970042960112864), other = list(meanlog = 0.807396441784017, sdlog = 1.02723378541433));
18-
rehab_los_lnorm=list(stroke_no_esd = list(meanlog = 3.02093582638726, sdlog = 0.806787851643665), stroke_esd = list(meanlog = 3.18205014379696, sdlog = 0.676901128257839), tia = list(meanlog = 2.45477304821951, sdlog = 0.973396605337238), neuro = list(meanlog = 2.95675141458562, sdlog = 0.849781569743057), other = list(meanlog = 2.49418211833932, sdlog = 0.754502688730926))
17+
dist=list(arrival = list(asu = list(stroke = function (size = 1)
18+
rexp(size, rate = 1/mean), tia = function (size = 1)
19+
rexp(size, rate = 1/mean), neuro = function (size = 1)
20+
rexp(size, rate = 1/mean), other = function (size = 1)
21+
rexp(size, rate = 1/mean)), rehab = list(stroke = function (size = 1)
22+
rexp(size, rate = 1/mean), neuro = function (size = 1)
23+
rexp(size, rate = 1/mean), other = function (size = 1)
24+
rexp(size, rate = 1/mean))), los = list(asu = list(stroke_noesd = function (size = 1)
25+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), stroke_esd = function (size = 1)
26+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), stroke_mortality = function (size = 1)
27+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), tia = function (size = 1)
28+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), neuro = function (size = 1)
29+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), other = function (size = 1)
30+
rlnorm(size, meanlog = meanlog, sdlog = sdlog)), rehab = list(stroke_noesd = function (size = 1)
31+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), stroke_esd = function (size = 1)
32+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), tia = function (size = 1)
33+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), neuro = function (size = 1)
34+
rlnorm(size, meanlog = meanlog, sdlog = sdlog), other = function (size = 1)
35+
rlnorm(size, meanlog = meanlog, sdlog = sdlog))), routing = list(asu = list(stroke = function (size = 1)
36+
sample(values, size = size, replace = TRUE, prob = prob), tia = function (size = 1)
37+
sample(values, size = size, replace = TRUE, prob = prob), neuro = function (size = 1)
38+
sample(values, size = size, replace = TRUE, prob = prob), other = function (size = 1)
39+
sample(values, size = size, replace = TRUE, prob = prob)), rehab = list(stroke = function (size = 1)
40+
sample(values, size = size, replace = TRUE, prob = prob), tia = function (size = 1)
41+
sample(values, size = size, replace = TRUE, prob = prob), neuro = function (size = 1)
42+
sample(values, size = size, replace = TRUE, prob = prob), other = function (size = 1)
43+
sample(values, size = size, replace = TRUE, prob = prob))));
44+
map_val2num=1:3;
45+
map_num2val=c(`1` = "rehab", `2` = "esd", `3` = "other");
46+
dist_config_num=list(asu_arrival_stroke = list(class_name = "exponential", params = list(mean = 1.2)), asu_arrival_tia = list(class_name = "exponential", params = list(mean = 9.3)), asu_arrival_neuro = list(class_name = "exponential", params = list(mean = 3.6)), asu_arrival_other = list(class_name = "exponential", params = list(mean = 3.2)), rehab_arrival_stroke = list(class_name = "exponential", params = list(mean = 3)), rehab_arrival_neuro = list(class_name = "exponential", params = list(mean = 31.7)), rehab_arrival_other = list(
47+
class_name = "exponential", params = list(mean = 28.6)), asu_los_stroke_noesd = list(class_name = "lognormal", params = list(mean = 7.4, sd = 8.61)), asu_los_stroke_esd = list(class_name = "lognormal", params = list(mean = 4.6, sd = 4.8)), asu_los_stroke_mortality = list(class_name = "lognormal", params = list(mean = 7, sd = 8.7)), asu_los_tia = list(class_name = "lognormal", params = list(mean = 1.8, sd = 2.3)), asu_los_neuro = list(class_name = "lognormal", params = list(mean = 4, sd = 5)),
48+
asu_los_other = list(class_name = "lognormal", params = list(mean = 3.8, sd = 5.2)), rehab_los_stroke_noesd = list(class_name = "lognormal", params = list(mean = 28.4, sd = 27.2)), rehab_los_stroke_esd = list(class_name = "lognormal", params = list(mean = 30.3, sd = 23.1)), rehab_los_tia = list(class_name = "lognormal", params = list(mean = 18.7, sd = 23.5)), rehab_los_neuro = list(class_name = "lognormal", params = list(mean = 27.6, sd = 28.4)), rehab_los_other = list(class_name = "lognormal",
49+
params = list(mean = 16.1, sd = 14.1)), asu_routing_stroke = list(class_name = "discrete", params = list(values = 1:3, prob = list(0.24, 0.13, 0.63))), asu_routing_tia = list(class_name = "discrete", params = list(values = 1:3, prob = list(0.01, 0.01, 0.98))), asu_routing_neuro = list(class_name = "discrete", params = list(values = 1:3, prob = list(0.11, 0.05, 0.84))), asu_routing_other = list(class_name = "discrete", params = list(values = 1:3, prob = list(0.05, 0.1, 0.85))), rehab_routing_stroke = list(
50+
class_name = "discrete", params = list(values = 2:3, prob = list(0.4, 0.6))), rehab_routing_tia = list(class_name = "discrete", params = list(values = 2:3, prob = list(0, 1))), rehab_routing_neuro = list(class_name = "discrete", params = list(values = 2:3, prob = list(0.09, 0.91))), rehab_routing_other = list(class_name = "discrete", params = list(values = 2:3, prob = list(0.13, 0.88))))
1951
Log:
2052
0.865903: asu_other0: 🚶 Arrived at ASU
2153
0.865903: asu_other0: 🎯 Planned ASU -> 3 (other)
@@ -35,7 +67,7 @@ Log:
3567
4.16715: asu_tia1: ⏳ ASU length of stay: 0.2
3668
4.18468: asu_other1: 🏁 ASU stay completed
3769
4.19181: rehab_stroke0: 🚶 Arrived at rehab
38-
4.19181: rehab_stroke0: 🎯 Planned rehab -> 1 (esd)
70+
4.19181: rehab_stroke0: 🎯 Planned rehab -> 2 (esd)
3971
4.19181: rehab_stroke0: ⏳ Rehab length of stay: 10.714
4072
4.36704: asu_tia1: 🏁 ASU stay completed
4173
4.70094: asu_stroke1: 🚶 Arrived at ASU
@@ -59,7 +91,7 @@ Log:
5991
7.12946: asu_stroke4: 🎯 Planned ASU -> 3 (other)
6092
7.12946: asu_stroke4: ⏳ ASU length of stay: 12.365
6193
7.29875: rehab_stroke1: 🚶 Arrived at rehab
62-
7.29875: rehab_stroke1: 🎯 Planned rehab -> 2 (other)
94+
7.29875: rehab_stroke1: 🎯 Planned rehab -> 3 (other)
6395
7.29875: rehab_stroke1: ⏳ Rehab length of stay: 34.847
6496
7.77172: asu_other3: 🚶 Arrived at ASU
6597
7.77172: asu_other3: 🎯 Planned ASU -> 3 (other)

rmarkdown/analysis.Rmd

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ cores <- 9L
6767
### Run the model
6868

6969
```{r}
70-
param <- create_parameters(cores = cores)
70+
param <- parameters(cores = cores)
7171
base_results <- runner(param = param)
7272
```
7373

@@ -249,13 +249,19 @@ plot_delay_prob(
249249
**5% more admissions.** A 5% increase in admissions across all patient subgroups.
250250

251251
```{r}
252-
s1_param <- create_parameters(
253-
asu_arrivals = lapply(create_asu_arrivals(), FUN = function(x) x * 0.95),
254-
rehab_arrivals = lapply(create_rehab_arrivals(), FUN = function(x) x * 0.95),
255-
cores = cores
256-
)
257-
print(s1_param$asu_arrivals)
258-
print(s1_param$rehab_arrivals)
252+
s1_param <- parameters(cores = cores)
253+
for (key in names(s1_param$dist_config)) {
254+
if (grepl("arrival", key)) {
255+
s1_param$dist_config[[key]]$params$mean <- (
256+
s1_param$dist_config[[key]]$params$mean * 0.95
257+
)
258+
}
259+
}
260+
# View an example
261+
print("Before:")
262+
print(unlist(param$dist_config$asu_arrival_stroke))
263+
print("After:")
264+
print(unlist(s1_param$dist_config$asu_arrival_stroke))
259265
```
260266

261267
```{r}
@@ -371,11 +377,15 @@ write.csv(adj_full_tab_2, file.path(output_dir, "table2.csv"))
371377

372378
```{r}
373379
# Set IAT very high, essentially meaning that we have no neuro arrivals
374-
s4_param <- create_parameters(
375-
asu_arrivals = create_asu_arrivals(neuro = 10000000000),
376-
rehab_arrivals = create_rehab_arrivals(neuro = 10000000000),
377-
cores = 9L
378-
)
380+
s4_param <- parameters(cores = 9L)
381+
s4_param$dist_config$asu_arrival_neuro$params$mean = 10000000000
382+
s4_param$dist_config$rehab_arrival_neuro$params$mean = 10000000000
383+
384+
# View an example
385+
print("Before:")
386+
print(unlist(param$dist_config$asu_arrival_neuro))
387+
print("After:")
388+
print(unlist(s4_param$dist_config$asu_arrival_neuro))
379389
```
380390

381391
```{r}

rmarkdown/analysis.md

Lines changed: 62 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Analysis
22
================
33
Amy Heather
4-
2025-07-11
4+
2025-08-11
55

66
- [Set-up](#set-up)
77
- [Base case](#base-case)
@@ -58,7 +58,8 @@ last in the plotting function).
5858

5959
Install the latest version of the local simulation package. If running
6060
sequentially, `devtools::load_all()` is sufficient. If running in
61-
parallel, you must use `devtools::install()` and then `library(simulation)`.
61+
parallel, you must use `devtools::install()` and then
62+
`library(simulation)`.
6263

6364
``` r
6465
devtools::install(upgrade = "never")
@@ -75,11 +76,12 @@ devtools::install(upgrade = "never")
7576
## ─ building ‘simulation_0.1.0.tar.gz’
7677
##
7778
## Running /opt/R/4.4.1/lib/R/bin/R CMD INSTALL \
78-
## /tmp/Rtmpz9aafi/simulation_0.1.0.tar.gz --install-tests
79+
## /tmp/RtmpLULkF1/simulation_0.1.0.tar.gz --install-tests
7980
## * installing to library ‘/home/amy/.cache/R/renv/library/rdesrap_stroke-34041c45/linux-ubuntu-noble/R-4.4/x86_64-pc-linux-gnu’
8081
## * installing *source* package ‘simulation’ ...
8182
## ** using staged installation
8283
## ** R
84+
## ** inst
8385
## ** tests
8486
## ** byte-compile and prepare package for lazy loading
8587
## ** help
@@ -128,7 +130,7 @@ cores <- 9L
128130
### Run the model
129131

130132
``` r
131-
param <- create_parameters(cores = cores)
133+
param <- parameters(cores = cores)
132134
base_results <- runner(param = param)
133135
```
134136

@@ -337,38 +339,39 @@ plot_delay_prob(
337339
subgroups.
338340

339341
``` r
340-
s1_param <- create_parameters(
341-
asu_arrivals = lapply(create_asu_arrivals(), FUN = function(x) x * 0.95),
342-
rehab_arrivals = lapply(create_rehab_arrivals(), FUN = function(x) x * 0.95),
343-
cores = cores
344-
)
345-
print(s1_param$asu_arrivals)
342+
s1_param <- parameters(cores = cores)
343+
for (key in names(s1_param$dist_config)) {
344+
if (grepl("arrival", key)) {
345+
s1_param$dist_config[[key]]$params$mean <- (
346+
s1_param$dist_config[[key]]$params$mean * 0.95
347+
)
348+
}
349+
}
350+
# View an example
351+
print("Before:")
346352
```
347353

348-
## $stroke
349-
## [1] 1.14
350-
##
351-
## $tia
352-
## [1] 8.835
353-
##
354-
## $neuro
355-
## [1] 3.42
356-
##
357-
## $other
358-
## [1] 3.04
354+
## [1] "Before:"
359355

360356
``` r
361-
print(s1_param$rehab_arrivals)
357+
print(unlist(param$dist_config$asu_arrival_stroke))
362358
```
363359

364-
## $stroke
365-
## [1] 20.71
366-
##
367-
## $neuro
368-
## [1] 30.115
369-
##
370-
## $other
371-
## [1] 27.17
360+
## class_name params.mean
361+
## "exponential" "1.2"
362+
363+
``` r
364+
print("After:")
365+
```
366+
367+
## [1] "After:"
368+
369+
``` r
370+
print(unlist(s1_param$dist_config$asu_arrival_stroke))
371+
```
372+
373+
## class_name params.mean
374+
## "exponential" "1.14"
372375

373376
``` r
374377
s1_results <- runner(param = s1_param)
@@ -556,13 +559,36 @@ requirements.
556559

557560
``` r
558561
# Set IAT very high, essentially meaning that we have no neuro arrivals
559-
s4_param <- create_parameters(
560-
asu_arrivals = create_asu_arrivals(neuro = 10000000000),
561-
rehab_arrivals = create_rehab_arrivals(neuro = 10000000000),
562-
cores = 9L
563-
)
562+
s4_param <- parameters(cores = 9L)
563+
s4_param$dist_config$asu_arrival_neuro$params$mean = 10000000000
564+
s4_param$dist_config$rehab_arrival_neuro$params$mean = 10000000000
565+
566+
# View an example
567+
print("Before:")
568+
```
569+
570+
## [1] "Before:"
571+
572+
``` r
573+
print(unlist(param$dist_config$asu_arrival_neuro))
574+
```
575+
576+
## class_name params.mean
577+
## "exponential" "3.6"
578+
579+
``` r
580+
print("After:")
581+
```
582+
583+
## [1] "After:"
584+
585+
``` r
586+
print(unlist(s4_param$dist_config$asu_arrival_neuro))
564587
```
565588

589+
## class_name params.mean
590+
## "exponential" "1e+10"
591+
566592
``` r
567593
s4_results <- runner(param = s4_param)
568594
```
@@ -1049,4 +1075,4 @@ seconds <- as.integer(runtime %% 60L)
10491075
cat(sprintf("Notebook run time: %dm %ds", minutes, seconds))
10501076
```
10511077

1052-
## Notebook run time: 2m 33s
1078+
## Notebook run time: 1m 33s

rmarkdown/generate_exp_results.Rmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ testdata_dir <- file.path("..", "tests", "testthat", "testdata")
4545
## Base case
4646

4747
```{r}
48-
param <- create_parameters(cores = 1L, number_of_runs = 2L)
48+
param <- parameters(cores = 1L, number_of_runs = 2L)
4949
print(param)
5050
```
5151

0 commit comments

Comments
 (0)