Nothing
library(tinytest)
#-------------------------------------------------------------------------------
# Structure
#-------------------------------------------------------------------------------
# Independent two-sample t-Test
set.seed(1234)
d <- sim_log_lognormal(
n1 = 20,
n2 = 20,
ratio = c(1.2, 1.4),
cv1 = 0.4,
cv2 = 0.4,
cor = 0,
nsims = 1000
) |>
power()
expect_equal(
d,
structure(list(n1 = structure(c(20, 20), label = "n1"), n2 = structure(c(20,
20), label = "n2"), ratio = structure(c(1.2, 1.4), label = "Ratio"),
cv1 = structure(c(0.4, 0.4), label = "CV1"), cv2 = structure(c(0.4,
0.4), label = "CV2"), cor = structure(c(0, 0), label = "Correlation"),
distribution = structure(c("Independent two-sample log(lognormal)",
"Independent two-sample log(lognormal)"), label = "Distribution"),
nsims = structure(c(1000, 1000), label = "N Simulations"),
test = structure(c(`t_test_welch()` = "Welch's t-Test", `t_test_welch()` = "Welch's t-Test"
), label = "Test"), alpha = structure(c(0.05, 0.05), label = "Alpha"),
power = structure(c(0.312, 0.772), label = "Power")), row.names = c(NA,
-2L), class = c("depower", "log_lognormal_independent_two_sample",
"tbl_df", "tbl", "data.frame")),
tolerance = 0.01,
scale = 1
)
# Dependent two-sample t-Test
set.seed(1234)
d <- sim_log_lognormal(
n1 = 20,
n2 = 20,
ratio = c(1.2, 1.4),
cv1 = 0.4,
cv2 = 0.4,
cor = 0.5,
nsims = 1000
) |>
power()
expect_equal(
d,
structure(list(n1 = structure(c(20, 20), label = "n1"), n2 = structure(c(20,
20), label = "n2"), ratio = structure(c(1.2, 1.4), label = "Ratio"),
cv1 = structure(c(0.4, 0.4), label = "CV1"), cv2 = structure(c(0.4,
0.4), label = "CV2"), cor = structure(c(0.5, 0.5), label = "Correlation"),
distribution = structure(c("Dependent two-sample log(lognormal)",
"Dependent two-sample log(lognormal)"), label = "Distribution"),
nsims = structure(c(1000, 1000), label = "N Simulations"),
test = structure(c(`t_test_paired()` = "Paired t-Test", `t_test_paired()` = "Paired t-Test"
), label = "Test"), alpha = structure(c(0.05, 0.05), label = "Alpha"),
power = structure(c(0.535, 0.957), label = "Power")), row.names = c(NA,
-2L), class = c("depower", "log_lognormal_dependent_two_sample",
"tbl_df", "tbl", "data.frame")),
tolerance = 0.01,
scale = 1
)
# Mixed-type two-sample t-Test
set.seed(1234)
d <- sim_log_lognormal(
n1 = 20,
n2 = 20,
ratio = c(1.2, 1.4),
cv1 = 0.4,
cv2 = 0.4,
cor = c(0, 0.5),
nsims = 1000
) |>
power()
expect_equal(
d,
structure(list(n1 = structure(c(20, 20, 20, 20), label = "n1"),
n2 = structure(c(20, 20, 20, 20), label = "n2"), ratio = structure(c(1.2,
1.4, 1.2, 1.4), label = "Ratio"), cv1 = structure(c(0.4,
0.4, 0.4, 0.4), label = "CV1"), cv2 = structure(c(0.4, 0.4,
0.4, 0.4), label = "CV2"), cor = structure(c(0, 0, 0.5, 0.5
), label = "Correlation"), distribution = structure(c("Independent two-sample log(lognormal)",
"Independent two-sample log(lognormal)", "Dependent two-sample log(lognormal)",
"Dependent two-sample log(lognormal)"), label = "Distribution"),
nsims = structure(c(1000, 1000, 1000, 1000), label = "N Simulations"),
test = structure(c(`t_test_welch()` = "Welch's t-Test", `t_test_welch()` = "Welch's t-Test",
`t_test_paired()` = "Paired t-Test", `t_test_paired()` = "Paired t-Test"
), label = "Test"), alpha = structure(c(0.05, 0.05, 0.05,
0.05), label = "Alpha"), power = structure(c(0.312, 0.772,
0.54, 0.963), label = "Power")), row.names = c(NA, -4L), class = c("depower",
"log_lognormal_mixed_two_sample", "tbl_df", "tbl", "data.frame")),
tolerance = 0.01,
scale = 1
)
# One-sample t-Test
set.seed(1234)
d <- sim_log_lognormal(
n1 = 20,
ratio = c(1.2, 1.4),
cv1 = 0.4,
nsims = 1000
) |>
power()
expect_equal(
d,
structure(list(n1 = structure(c(20, 20), label = "n1"), ratio = structure(c(1.2,
1.4), label = "Ratio"), cv1 = structure(c(0.4, 0.4), label = "CV1"),
distribution = structure(c("One-sample log(lognormal)", "One-sample log(lognormal)"
), label = "Distribution"), nsims = structure(c(1000, 1000
), label = "N Simulations"), test = structure(c(`t_test_paired()` = "One-sample t-Test",
`t_test_paired()` = "One-sample t-Test"), label = "Test"),
alpha = structure(c(0.05, 0.05), label = "Alpha"), power = structure(c(0.515,
0.958), label = "Power")), row.names = c(NA, -2L), class = c("depower",
"log_lognormal_one_sample", "tbl_df", "tbl", "data.frame")),
tolerance = 0.01,
scale = 1
)
# NB test
set.seed(1234)
d <- sim_nb(
n1 = 10,
mean1 = 10,
ratio = c(1.6, 2),
dispersion1 = 2,
dispersion2 = 2,
nsims = 200
) |>
power()
expect_equal(
d,
structure(list(n1 = structure(c(10, 10), label = "n1"), n2 = structure(c(10,
10), label = "n2"), mean1 = structure(c(10, 10), label = "Mean1"),
mean2 = structure(c(16, 20), label = "Mean2"), ratio = structure(c(1.6,
2), label = "Ratio"), dispersion1 = structure(c(2,
2), label = "Dispersion1"), dispersion2 = structure(c(2,
2), label = "Dispersion2"), distribution = structure(c("Independent two-sample NB",
"Independent two-sample NB"), label = "Distribution"), nsims = structure(c(200,
200), label = "N Simulations"), test = structure(c(`wald_test_nb()` = "NB Wald test",
`wald_test_nb()` = "NB Wald test"), label = "Test"), alpha = structure(c(0.05,
0.05), label = "Alpha"), power = structure(c(0.315, 0.545
), label = "Power")), row.names = c(NA, -2L), class = c("depower",
"nb", "tbl_df", "tbl", "data.frame")),
tolerance = 0.01,
scale = 1
)
# BNB test
# 2024-12-09 CRAN test failed with ATLAS BLAS. Add tolerance to allow varying
# numerical precision.
set.seed(1234)
d <- sim_bnb(
n = 10,
mean1 = 10,
ratio = c(1.4, 1.6),
dispersion = 10,
nsims = 200
) |>
power()
expect_equal(
d,
structure(list(n1 = structure(c(10, 10), label = "n1"), n2 = structure(c(10,
10), label = "n2"), mean1 = structure(c(10, 10), label = "Mean1"),
mean2 = structure(c(14, 16), label = "Mean2"), ratio = structure(c(1.4,
1.6), label = "Ratio"), dispersion1 = structure(c(10,
10), label = "Dispersion1"), distribution = structure(c("Dependent two-sample BNB",
"Dependent two-sample BNB"), label = "Distribution"), nsims = structure(c(200,
200), label = "N Simulations"), test = structure(c(`wald_test_bnb()` = "BNB Wald test",
`wald_test_bnb()` = "BNB Wald test"), label = "Test"), alpha = structure(c(0.05,
0.05), label = "Alpha"), power = structure(c(0.86, 0.97), label = "Power")), row.names = c(NA,
-2L), class = c("depower", "bnb", "tbl_df", "tbl", "data.frame"
)),
tolerance = 0.01,
scale = 1
)
#-------------------------------------------------------------------------------
# Validated t-test power
# from SAS
#-------------------------------------------------------------------------------
set.seed(1234)
# Independent two sample
expect_equal(
sim_log_lognormal(
n1 = 30,
n2 = 30,
ratio = 1.3,
cv1 = 0.35,
cv2 = 0.35,
nsims = 10000
) |>
power() |>
getElement("power") |>
as.numeric(),
0.8363,
tolerance = 0.03,
scale = 1
)
# Independent two sample (inverted fc)
expect_equal(
sim_log_lognormal(
n1 = 30,
n2 = 30,
ratio = 1/1.3,
cv1 = 0.35,
cv2 = 0.35,
nsims = 10000
) |>
power() |>
getElement("power") |>
as.numeric(),
0.8363,
tolerance = 0.03,
scale = 1
)
# Independent two sample (different sample sizes)
expect_equal(
sim_log_lognormal(
n1 = 30,
n2 = 100,
ratio = 1.3,
cv1 = 0.35,
cv2 = 0.35,
nsims = 10000
) |>
power() |>
getElement("power") |>
as.numeric(),
0.9573,
tolerance = 0.02,
scale = 1
)
# Independent two sample (different CV)
expect_equal(
sim_log_lognormal(
n1 = 30,
n2 = 30,
ratio = 1.1,
cv1 = 0.3,
cv2 = 0.5,
cor = 0.345,
nsims = 10000
) |>
power() |>
getElement("power") |>
as.numeric(),
0.19762,
tolerance = 0.04,
scale = 1
)
# Paired two sample (Same CV)
expect_equal(
sim_log_lognormal(
n1 = 30,
n2 = 30,
ratio = 1.1,
cv1 = 0.3,
cv2 = 0.3,
cor = 0.345,
nsims = 10000
) |>
power() |>
getElement("power") |>
as.numeric(),
0.32798,
tolerance = 0.04,
scale = 1
)
# Paired two sample (Different CV)
expect_equal(
sim_log_lognormal(
n1 = 30,
n2 = 30,
ratio = 1.3,
cv1 = 0.7,
cv2 = 0.4,
cor = 0.765,
nsims = 10000
) |>
power() |>
getElement("power") |>
as.numeric(),
0.93598,
tolerance = 0.02,
scale = 1
)
# one-sample
expect_equal(
sim_log_lognormal(
n1 = 30,
ratio = 1.3,
cv1 = 0.35,
nsims = 10000
) |>
power() |>
getElement("power") |>
as.numeric(),
0.983,
tolerance = 0.02,
scale = 1
)
#-------------------------------------------------------------------------------
# Validated NB power
# table 1 and 2 in Rettiganti (2012) doi:10.1080/10543406.2010.528105
#-------------------------------------------------------------------------------
expect_equal(
sim_nb(
n1 = 76,
mean1 = 5.9,
ratio = 0.5,
dispersion1 = 0.49,
nsims = 1000
) |>
power(lrt_nb()) |>
getElement("power") |>
as.numeric(),
0.8,
tolerance = 0.04,
scale = 1
)
expect_equal(
sim_nb(
n1 = 87,
mean1 = 5.9,
ratio = 0.5,
dispersion1 = 0.49,
dispersion2 = 0.3675,
nsims = 1000
) |>
power(lrt_nb()) |>
getElement("power") |>
as.numeric(),
0.8,
tolerance = 0.05,
scale = 1
)
#-------------------------------------------------------------------------------
# Validated BNB power
# table 4 in Rettiganti (2012) doi:10.1080/10543406.2010.528105
#-------------------------------------------------------------------------------
expect_equal(
sim_bnb(
n = 10,
mean1 = 5.9,
ratio = 0.5,
dispersion = 0.49,
nsims = 1000
) |>
power(lrt_bnb()) |>
getElement("power") |>
as.numeric(),
0.82,
tolerance = 0.04,
scale = 1
)
#-------------------------------------------------------------------------------
# Data with majority zeros
#-------------------------------------------------------------------------------
nsims <- 200
set.seed(1234)
d <- sim_nb(
n1 = c(10),
n2 = c(10),
mean1 = c(10),
mean2 = c(15),
dispersion1 = c(0.01),
dispersion2 = c(0.01),
nsims = nsims
) |>
power()
expect_true(d$nsims < nsims*0.5)
nsims <- 200
set.seed(1234)
d <- sim_bnb(
n = 10,
mean1 = 10,
ratio = 1.3,
dispersion = 0.01,
nsims = 200
) |>
power() |>
suppressWarnings()
expect_true(d$nsims < nsims*0.5)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.