This R Markdown document contains the code for performing simulation studies related to the present method for setting acceptance criteria.

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6     ✔ purrr   0.3.4
## ✔ tibble  3.1.8     ✔ dplyr   1.0.9
## ✔ tidyr   1.2.0     ✔ stringr 1.4.0
## ✔ readr   2.1.2     ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(latex2exp)
load("sim_results.RData")
ls_m_breaks <- c(4, 6, 8, 10)
ls_m_values <- c("solid", "longdash", "dotdash", "dotted")
g <- sim_equiv %>% 
  mutate(m = as.factor(m)) %>% 
  group_by(n, m, method) %>% 
  ggplot(aes(x = n, y = `Rejection Rate`,
             color = m, linetype = m)) +
  geom_line() +
  facet_grid(. ~ method) +
  theme_bw() +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 0.15)) +
  scale_linetype_manual(
    breaks = ls_m_breaks,
    values = ls_m_values
  )
ggsave(filename = "figure01.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 6,
       height = 3, 
       units = "in"
)
g

g <- sim_equiv %>% 
  mutate(m = as.factor(m)) %>% 
  filter(method == "Two-Sample") %>% 
  ggplot(aes(x = n, y = `Rejection Rate`,
             color = m, linetype = m)) +
  geom_line() +
  ylim(0, 0.1) +
  theme_bw() +
  scale_linetype_manual(
    breaks = ls_m_breaks,
    values = ls_m_values
  )
g

Power Simulation (Reduction in Mean)

ls_method_breaks <- c("Two-Sample", "Vangel", "MSD")
ls_method_values <- c("solid", "dashed", "dotted")
g <- sim_power_mean %>%
  filter(m %in% c(6)) %>% 
  filter(n %in% c(18)) %>% 
  rename(Method = method) %>% 
  mutate(Method = fct_relevel(Method, "Two-Sample", "Vangel", "MSD")) %>% 
  arrange(m) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(paste0("n = ", n)),
         m = as_factor(paste0("m = ", m))) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = Method, linetype = Method)) +
  geom_line() +
  geom_hline(yintercept = 0.05, color = "black") +
  annotate("text", label = TeX("Nominal $\\alpha = 0.05$"),
           x = 1.5, y = 0.08, color = "black",
           vjust = "center", size = 3) +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_grid(m ~ n) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_method_breaks,
    values = ls_method_values
  )
ggsave(filename = "figure05.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 6,
       height = 3, 
       units = "in"
)
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'
g
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'

ls_n_breaks <- c(18, 30, 100)
ls_n_values <- c("solid", "dashed", "dotted")
g <- sim_power_mean %>%
  filter(method == "Two-Sample") %>% 
  filter(n %in% ls_n_breaks) %>% 
  arrange(m) %>% 
  mutate(m = as_factor(paste0("m = ", m))) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(n)) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = n, linetype = n)) +
  geom_line() +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_wrap(vars(m)) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_n_breaks,
    values = ls_n_values
  )
ggsave(filename = "figure02.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 5.5,
       height = 3, 
       units = "in"
)
g

sim_power_mean %>% 
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated))
## # A tibble: 28 × 3
## # Groups:   n, m [28]
##        n     m `Delta for beta=0.2`
##    <dbl> <dbl>                <dbl>
##  1    12     4                 1.71
##  2    18     4                 1.58
##  3    24     4                 1.51
##  4    30     4                 1.48
##  5    36     4                 1.46
##  6    50     4                 1.43
##  7   100     4                 1.39
##  8    12     6                 1.49
##  9    18     6                 1.37
## 10    24     6                 1.30
## # … with 18 more rows
## # ℹ Use `print(n = ...)` to see more rows
g <- sim_power_mean %>% 
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated)) %>% 
  mutate(m = as.factor(m)) %>% 
  ggplot(aes(x = n, y = `Delta for beta=0.2`, color = m, linetype = m)) +
  geom_line() +
  ylab(TeX("$\\delta$")) +
  xlab("n") +
  theme_bw() +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_linetype_manual(
    breaks = ls_m_breaks,
    values = ls_m_values
  )
ggsave(filename = "figure16.eps",
       plot = g,
       device = "eps",
       dpi = 1200,
       width = 6,
       height = 3, 
       units = "in"
)
g

Power Simulation (Increase in SD)

g <- sim_power_sd %>%
  filter(m %in% c(6)) %>% 
  filter(n %in% c(18)) %>% 
  rename(Method = method) %>% 
  mutate(Method = fct_relevel(Method, "Two-Sample", "Vangel", "MSD")) %>% 
  arrange(m) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(paste0("n = ", n)),
         m = as_factor(paste0("m = ", m))) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = Method, linetype = Method)) +
  geom_line() +
  geom_hline(yintercept = 0.05, color = "black") +
  annotate("text", label = TeX("Nominal $\\alpha = 0.05$"),
           x = 3.5, y = 0.08, color = "black",
           vjust = "center", size = 3) +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_grid(m ~ n) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_method_breaks,
    values = ls_method_values
  )
ggsave(filename = "figure06.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 6,
       height = 3, 
       units = "in"
)
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'
g
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'

g <- sim_power_sd %>%
  filter(method == "Two-Sample") %>% 
  filter(n %in% ls_n_breaks) %>% 
  arrange(m) %>% 
  mutate(m = as_factor(paste0("m = ", m))) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(n)) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = n, linetype = n)) +
  geom_line() +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_wrap(vars(m)) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_n_breaks,
    values = ls_n_values
  )
ggsave(filename = "figure03.eps", 
       plot = g,
       device = "eps", 
       dpi = 1200, 
       width = 5.5,
       height = 3, 
       units = "in"
)
g

sim_power_sd %>% 
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated))
## # A tibble: 28 × 3
## # Groups:   n, m [28]
##        n     m `Delta for beta=0.2`
##    <dbl> <dbl>                <dbl>
##  1    12     4                NA   
##  2    18     4                NA   
##  3    24     4                NA   
##  4    30     4                NA   
##  5    36     4                NA   
##  6    50     4                NA   
##  7   100     4                NA   
##  8    12     6                 4.60
##  9    18     6                 4.30
## 10    24     6                 4.15
## # … with 18 more rows
## # ℹ Use `print(n = ...)` to see more rows
sim_power_sd %>% 
  filter(method == "MSD") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated))
## # A tibble: 28 × 3
## # Groups:   n, m [28]
##        n     m `Delta for beta=0.2`
##    <dbl> <dbl>                <dbl>
##  1    12     4                 3.45
##  2    18     4                 3.22
##  3    24     4                 3.09
##  4    30     4                 3.01
##  5    36     4                 2.98
##  6    50     4                 2.93
##  7   100     4                 2.88
##  8    12     6                 2.89
##  9    18     6                 2.65
## 10    24     6                 2.51
## # … with 18 more rows
## # ℹ Use `print(n = ...)` to see more rows
g <- sim_power_sd %>% 
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated)) %>% 
  mutate(m = as.factor(m)) %>% 
  ggplot(aes(x = n, y = `Delta for beta=0.2`, color = m, linetype = m)) +
  geom_line() +
  ylab(TeX("$\\delta$")) +
  xlab("n") +
  theme_bw() +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_linetype_manual(
    breaks = ls_m_breaks,
    values = ls_m_values
  )
ggsave(filename = "figure17.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 6,
       height = 3, 
       units = "in"
)
## Warning: Removed 7 row(s) containing missing values (geom_path).
g
## Warning: Removed 7 row(s) containing missing values (geom_path).

Power Simulation (Reduction in Minimum Individual)

g <- sim_power_min_indiv %>%
  filter(m %in% c(6)) %>% 
  filter(n %in% c(18)) %>% 
  rename(Method = method) %>% 
  mutate(Method = fct_relevel(Method, "Two-Sample", "Vangel", "MSD")) %>% 
  arrange(m) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(paste0("n = ", n)),
         m = as_factor(paste0("m = ", m))) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = Method, linetype = Method)) +
  geom_line() +
  geom_hline(yintercept = 0.05, color = "black") +
  annotate("text", label = TeX("Nominal $\\alpha = 0.05$"),
           x = 3, y = 0.08, color = "black",
           vjust = "center", size = 3) +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_grid(m ~ n) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_method_breaks,
    values = ls_method_values
  )
ggsave(filename = "figure07.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 6,
       height = 3, 
       units = "in"
)
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'
g
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'

g <- sim_power_min_indiv %>%
  filter(method == "Two-Sample") %>% 
  filter(n %in% ls_n_breaks) %>% 
  arrange(m) %>% 
  mutate(m = as_factor(paste0("m = ", m))) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(n)) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = n, linetype = n)) +
  geom_line() +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_wrap(vars(m)) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_n_breaks,
    values = ls_n_values
  )
ggsave(filename = "figure04.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 5.5,
       height = 3, 
       units = "in"
)
g

sim_power_min_indiv %>%
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated))
## # A tibble: 28 × 3
## # Groups:   n, m [28]
##        n     m `Delta for beta=0.2`
##    <dbl> <dbl>                <dbl>
##  1    12     4                 3.86
##  2    18     4                 3.61
##  3    24     4                 3.47
##  4    30     4                 3.41
##  5    36     4                 3.38
##  6    50     4                 3.32
##  7   100     4                 3.25
##  8    12     6                NA   
##  9    18     6                 3.90
## 10    24     6                 3.78
## # … with 18 more rows
## # ℹ Use `print(n = ...)` to see more rows
g <- sim_power_min_indiv %>% 
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated)) %>% 
  mutate(m = as.factor(m)) %>% 
  ggplot(aes(x = n, y = `Delta for beta=0.2`, color = m, linetype = m)) +
  geom_line() +
  ylab(TeX("$\\delta$")) +
  xlab("n") +
  theme_bw() +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_linetype_manual(
    breaks = ls_m_breaks,
    values = ls_m_values
  )
ggsave(filename = "figure18.eps",
       plot = g,
       device = "eps",
       dpi = 1200,
       width = 6,
       height = 3,
       units = "in"
)
## Warning: Removed 4 row(s) containing missing values (geom_path).
g
## Warning: Removed 4 row(s) containing missing values (geom_path).

Power Simulation (Mixture Distribution)

g <- sim_power_mixture %>%
  filter(m %in% c(6)) %>% 
  filter(n %in% c(18)) %>% 
  rename(Method = method) %>% 
  mutate(Method = fct_relevel(Method, "Two-Sample", "Vangel", "MSD")) %>% 
  arrange(m) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(paste0("n = ", n)),
         m = as_factor(paste0("m = ", m))) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = Method, linetype = Method)) +
  geom_line() +
  geom_hline(yintercept = 0.05, color = "black") +
  annotate("text", label = TeX("Nominal $\\alpha = 0.05$"),
           x = 2.5, y = 0.08, color = "black",
           vjust = "center", size = 3) +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_grid(m ~ n) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_method_breaks,
    values = ls_method_values
  )
ggsave(filename = "figure15.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 6,
       height = 3, 
       units = "in"
)
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'
g
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'

g <- sim_power_mixture %>%
  filter(method == "Two-Sample") %>% 
  filter(n %in% ls_n_breaks) %>% 
  arrange(m) %>% 
  mutate(m = as_factor(paste0("m = ", m))) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(n)) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = n, linetype = n)) +
  geom_line() +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_wrap(vars(m)) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_n_breaks,
    values = ls_n_values
  )
ggsave(filename = "figure14.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 5.5,
       height = 3, 
       units = "in"
)
g

sim_power_mixture %>%
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated))
## # A tibble: 28 × 3
## # Groups:   n, m [28]
##        n     m `Delta for beta=0.2`
##    <dbl> <dbl>                <dbl>
##  1    12     4                 3.92
##  2    18     4                 3.65
##  3    24     4                 3.50
##  4    30     4                 3.44
##  5    36     4                 3.40
##  6    50     4                 3.34
##  7   100     4                 3.26
##  8    12     6                 3.34
##  9    18     6                 3.04
## 10    24     6                 2.91
## # … with 18 more rows
## # ℹ Use `print(n = ...)` to see more rows
g <- sim_power_mixture %>% 
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated)) %>% 
  mutate(m = as.factor(m)) %>% 
  ggplot(aes(x = n, y = `Delta for beta=0.2`, color = m, linetype = m)) +
  geom_line() +
  ylab(TeX("$\\delta$")) +
  xlab("n") +
  theme_bw() +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_linetype_manual(
    breaks = ls_m_breaks,
    values = ls_m_values
  )
ggsave(filename = "figure19.eps",
       plot = g,
       device = "eps",
       dpi = 1200,
       width = 6,
       height = 3,
       units = "in"
)
g

Power Simulation (Lognormal)

g <- sim_power_lognormal %>%
  filter(m %in% c(6)) %>% 
  filter(n %in% c(18)) %>% 
  rename(Method = method) %>% 
  mutate(Method = fct_relevel(Method, "Two-Sample", "Vangel", "MSD")) %>% 
  arrange(m) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(paste0("n = ", n)),
         m = as_factor(paste0("m = ", m))) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = Method, linetype = Method)) +
  geom_line() +
  geom_hline(yintercept = 0.05, color = "black") +
  annotate("text", label = TeX("Nominal $\\alpha = 0.05$"),
           x = 1.5, y = 0.08, color = "black",
           vjust = "center", size = 3) +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_grid(m ~ n) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_method_breaks,
    values = ls_method_values
  )
ggsave(filename = "figure09.eps",
       plot = g,
       device = "eps",
       dpi = 1200,
       width = 6,
       height = 3,
       units = "in"
)
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'
g
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'

g <- sim_power_lognormal %>%
  filter(method == "Two-Sample") %>% 
  filter(n %in% ls_n_breaks) %>% 
  arrange(m) %>% 
  mutate(m = as_factor(paste0("m = ", m))) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(n)) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = n, linetype = n)) +
  geom_line() +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_wrap(vars(m)) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_n_breaks,
    values = ls_n_values
  )
ggsave(filename = "figure08.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 5.5,
       height = 3, 
       units = "in"
)
g

sim_power_lognormal %>%
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated))
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## # A tibble: 28 × 3
## # Groups:   n, m [28]
##        n     m `Delta for beta=0.2`
##    <dbl> <dbl>                <dbl>
##  1    12     4                1.53 
##  2    18     4                1.35 
##  3    24     4                1.21 
##  4    30     4                1.13 
##  5    36     4                1.05 
##  6    50     4                0.905
##  7   100     4                0.571
##  8    12     6                1.40 
##  9    18     6                1.22 
## 10    24     6                1.13 
## # … with 18 more rows
## # ℹ Use `print(n = ...)` to see more rows
g <- sim_power_lognormal %>% 
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated)) %>% 
  mutate(`$m$` = as.factor(m)) %>% 
  ggplot(aes(x = n, y = `Delta for beta=0.2`, color = `$m$`, linetype = `$m$`)) +
  geom_line() +
  ylab("$\\delta$") +
  xlab("$n$") +
  theme_bw() +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_linetype_manual(
    breaks = ls_m_breaks,
    values = ls_m_values
  )
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
g

Power Simulation (Weibull)

g <- sim_power_weibull %>%
  filter(m %in% c(6)) %>% 
  filter(n %in% c(18)) %>% 
  rename(Method = method) %>% 
  mutate(Method = fct_relevel(Method, "Two-Sample", "Vangel", "MSD")) %>% 
  arrange(m) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(paste0("n = ", n)),
         m = as_factor(paste0("m = ", m))) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = Method, linetype = Method)) +
  geom_line() +
  geom_hline(yintercept = 0.05, color = "black") +
  annotate("text", label = TeX("Nominal $\\alpha = 0.05$"),
           x = 1.5, y = 0.08, color = "black",
           vjust = "center", size = 3) +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_grid(m ~ n) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_method_breaks,
    values = ls_method_values
  )
ggsave(filename = "figure11.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 6,
       height = 3, 
       units = "in"
)
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'
g
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'

g <- sim_power_weibull %>%
  filter(method == "Two-Sample") %>% 
  filter(n %in% ls_n_breaks) %>% 
  arrange(m) %>% 
  mutate(m = as_factor(paste0("m = ", m))) %>% 
  arrange(n) %>% 
  mutate(n = as_factor(n)) %>%
  ggplot(aes(x = delta, y = `Rejection Rate`,
             color = n, linetype = n)) +
  geom_line() +
  xlab(TeX("$\\delta$")) +
  theme_bw() +
  facet_wrap(vars(m)) +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_y_continuous(expand = expansion(0, 0), limits = c(0, 1)) +
  scale_linetype_manual(
    breaks = ls_n_breaks,
    values = ls_n_values
  )
ggsave(filename = "figure10.eps", 
       plot = g, 
       device = "eps", 
       dpi = 1200, 
       width = 5.5,
       height = 3, 
       units = "in"
)
g

sim_power_weibull %>%
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated))
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## # A tibble: 28 × 3
## # Groups:   n, m [28]
##        n     m `Delta for beta=0.2`
##    <dbl> <dbl>                <dbl>
##  1    12     4                1.60 
##  2    18     4                1.36 
##  3    24     4                1.17 
##  4    30     4                0.994
##  5    36     4                0.827
##  6    50     4                0.499
##  7   100     4               NA    
##  8    12     6                1.46 
##  9    18     6                1.25 
## 10    24     6                1.13 
## # … with 18 more rows
## # ℹ Use `print(n = ...)` to see more rows
g <- sim_power_weibull %>% 
  filter(method == "Two-Sample") %>% 
  group_by(n, m) %>% 
  nest() %>% 
  mutate(interpolated = map(data, ~approx(.$`Rejection Rate`, .$delta, 0.8))) %>% 
  mutate(`Delta for beta=0.2` = unlist(map(interpolated, ~.[[2]]))) %>% 
  select(-c(data, interpolated)) %>% 
  mutate(`$m$` = as.factor(m)) %>% 
  ggplot(aes(x = n, y = `Delta for beta=0.2`, color = `$m$`, linetype = `$m$`)) +
  geom_line() +
  ylab("$\\delta$") +
  xlab("$n$") +
  theme_bw() +
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  scale_linetype_manual(
    breaks = ls_m_breaks,
    values = ls_m_values
  )
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
g
## Warning: Removed 1 row(s) containing missing values (geom_path).

sessionInfo()
## R version 4.2.2 (2022-10-31)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.5 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
## 
## locale:
##  [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8    
##  [5] LC_MONETARY=en_CA.UTF-8    LC_MESSAGES=en_CA.UTF-8   
##  [7] LC_PAPER=en_CA.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] latex2exp_0.9.4 forcats_0.5.1   stringr_1.4.0   dplyr_1.0.9    
##  [5] purrr_0.3.4     readr_2.1.2     tidyr_1.2.0     tibble_3.1.8   
##  [9] ggplot2_3.3.6   tidyverse_1.3.2 rmarkdown_2.14 
## 
## loaded via a namespace (and not attached):
##  [1] lubridate_1.8.0     assertthat_0.2.1    digest_0.6.29      
##  [4] utf8_1.2.2          R6_2.5.1            cellranger_1.1.0   
##  [7] backports_1.4.1     reprex_2.0.1        evaluate_0.15      
## [10] highr_0.9           httr_1.4.3          pillar_1.8.0       
## [13] rlang_1.0.4         googlesheets4_1.0.0 readxl_1.4.0       
## [16] jquerylib_0.1.4     labeling_0.4.2      textshaping_0.3.6  
## [19] googledrive_2.0.0   munsell_0.5.0       broom_1.0.0        
## [22] compiler_4.2.2      modelr_0.1.8        xfun_0.31          
## [25] pkgconfig_2.0.3     systemfonts_1.0.4   htmltools_0.5.3    
## [28] tidyselect_1.1.2    fansi_1.0.3         crayon_1.5.1       
## [31] tzdb_0.3.0          dbplyr_2.2.1        withr_2.5.0        
## [34] grid_4.2.2          jsonlite_1.8.0      gtable_0.3.0       
## [37] lifecycle_1.0.1     DBI_1.1.3           magrittr_2.0.3     
## [40] scales_1.2.0        cli_3.3.0           stringi_1.7.8      
## [43] cachem_1.0.6        farver_2.1.1        fs_1.5.2           
## [46] xml2_1.3.3          bslib_0.4.0         ellipsis_0.3.2     
## [49] ragg_1.2.2          generics_0.1.3      vctrs_0.4.1        
## [52] tools_4.2.2         glue_1.6.2          hms_1.1.1          
## [55] fastmap_1.1.0       yaml_2.3.5          colorspace_2.0-3   
## [58] gargle_1.2.0        rvest_1.0.2         knitr_1.39         
## [61] haven_2.5.0         sass_0.4.2