## ----setup, include=FALSE, message = FALSE, warning = FALSE-------------------
knitr::opts_chunk$set(echo = TRUE)
knitr::opts_chunk$set(comment = "#>", collapse = TRUE)
options(rmarkdown.html_vignette.check_title = FALSE) #title of doc does not match vignette title
doc.cache <- T #for cran; change to F

## ----echo = T, message=F------------------------------------------------------
library(SimTOST)

## ----eval = TRUE--------------------------------------------------------------
ssMielke <- sampleSize_Mielke(power = 0.8, Nmax = 1000, m = 5, k = 5, rho = 0,
                              sigma = 0.3, true.diff = log(1.05),
                              equi.tol = log(1.25), design = "parallel",
                              alpha = 0.05, adjust = "none", seed = 1234,
                              nsim = 1000)
ssMielke

## ----mielke-value, include = FALSE--------------------------------------------
ss_value <- ssMielke$SS

## ----eval = TRUE--------------------------------------------------------------
mu_r <- setNames(rep(1.00, 5), paste0("y", 1:5))
mu_t <- setNames(rep(1.05, 5), paste0("y", 1:5))
sigma <- setNames(sqrt(exp(0.3^2) - 1) * mu_r, paste0("y", 1:5))
lequi_lower <- setNames(rep(0.8, 5), paste0("y", 1:5))
lequi_upper <- setNames(rep(1.25, 5), paste0("y", 1:5))

ss <- sampleSize(power = 0.8, alpha = 0.05,
                 mu_list = list("R" = mu_r, "T" = mu_t),
                 sigma_list = list("R" = sigma, "T" = sigma),
                 list_comparator = list("R_vs_T" = c("R", "T")),
                 list_lequi.tol = list("R_vs_T" = lequi_lower),
                 list_uequi.tol = list("R_vs_T" = lequi_upper),
                 dtype = "parallel", ctype = "ROM", distribution = "lnorm",
                 adjust = "none", ncores = 1, nsim = 1000, seed = 1234,
                 keep_sim_data = TRUE)
ss

## ----fixed-power-parallel, eval = TRUE----------------------------------------
fixed_power <- simPower(
  n = c(50,100),
  distribution = "lnorm",
  mu_list = list(R = mu_r, T = mu_t),
  sigma_list = list(R = sigma, T = sigma),
  list_comparator = list(R_vs_T = c("R", "T")),
  list_y_comparator = list(R_vs_T = paste0("y", 1:5)),
  list_lequi.tol = list(R_vs_T = lequi_lower),
  list_uequi.tol = list(R_vs_T = lequi_upper),
  dtype = "parallel", ctype = "ROM", nsim = 1000, seed = 1234,
  keep_sim_data = TRUE
)
fixed_power

## ----eval = TRUE--------------------------------------------------------------
ssMielke <- sampleSize_Mielke(power = 0.8, Nmax = 1000, m = 5, k = 5, rho = 0.8,
                              sigma = 0.3, true.diff = log(1.05),
                              equi.tol = log(1.25), design = "parallel",
                              alpha = 0.05, adjust = "none", seed = 1234,
                              nsim = 500)
ssMielke
ss_value <- if (is.list(ssMielke)) ssMielke$SS else unname(ssMielke["SS"])

## -----------------------------------------------------------------------------
mu_r <- setNames(rep(1.00, 5), paste0("y", 1:5))
mu_t <- setNames(rep(1.05, 5), paste0("y", 1:5))
sigma <- setNames(sqrt(exp(0.3^2) - 1) * mu_r, paste0("y", 1:5))
lequi_lower <- setNames(rep(0.8, 5), paste0("y", 1:5))
lequi_upper <- setNames(rep(1.25, 5), paste0("y", 1:5))

ss <- sampleSize(power = 0.8, alpha = 0.05,
                 mu_list = list("R" = mu_r, "T" = mu_t),
                 sigma_list = list("R" = sigma, "T" = sigma),
                 rho = 0.8, # high correlation between the endpoints
                 list_comparator = list("R_vs_T" = c("R", "T")),
                 list_lequi.tol = list("R_vs_T" = lequi_lower),
                 list_uequi.tol = list("R_vs_T" = lequi_upper),
                 dtype = "parallel", ctype = "ROM", distribution = "lnorm",
                 adjust = "none", ncores = 1, k = 5, nsim = 500, seed = 1234)
ss

## ----correlated-endpoint-correlation, eval = TRUE, fig.width = 8, fig.height = 5, out.width = "100%", fig.align = "center"----
correlated_power <- simPower(
  n = 100,
  distribution = "lnorm",
  mu_list = list(R = mu_r, T = mu_t),
  sigma_list = list(R = sigma, T = sigma),
  rho = 0.8,
  list_comparator = list(R_vs_T = c("R", "T")),
  list_lequi.tol = list(R_vs_T = lequi_lower),
  list_uequi.tol = list(R_vs_T = lequi_upper),
  dtype = "parallel", ctype = "ROM", nsim = 500, seed = 1234,
  keep_sim_data = TRUE
)
plot_distribution(correlated_power, estimand = "correlation",
                  arms = c("R", "T"))

