Nothing
# create contrast matrix
doses <- c(0, 10, 25, 50, 100, 150)
fmodels <- Mods(linear = NULL, emax = 25, logistic = c(50, 10.88111),
exponential = 85, betaMod = rbind(c(0.33, 2.31), c(1.39, 1.39)),
doses = doses, addArgs = list(scal = 200), placEff = 0, maxEff = 0.4)
contMat <- optContr(fmodels, w = 1)
########################################################
## General tests: does powMCT work in various scenarios
########################################################
test_that("powMCT computes with default values", {
power <- powMCT(contMat, altModels = fmodels, n = 50, sigma = 1)
expect_true(is.numeric(power))
expect_true(all(power > 0 & power <= 1))
})
test_that("powMCT works with specified covariance matrix S", {
doses <- c(0, 10, 25, 50, 100, 150)
S <- 1^2 / 50 * diag(length(doses))
power <- powMCT(contMat, altModels = fmodels, S = S, df = 50 * length(doses) - length(doses), alpha = 0.05)
expect_true(is.numeric(power))
expect_true(all(power > 0 & power <= 1))
})
test_that("powMCT works with placebo adjusted estimates", {
doses <- c(10, 25, 50, 100, 150)
fmodels <- Mods(linear = NULL, emax = 25, logistic = c(50, 10.88111),
exponential = 85, betaMod = rbind(c(0.33, 2.31), c(1.39, 1.39)),
doses = c(0, doses), addArgs = list(scal = 200), placEff = 0, maxEff = 0.4)
contMat <- optContr(fmodels, doses = doses, w = 1, placAdj = TRUE)
power <- powMCT(contMat, altModels = fmodels, n = 50, sigma = 1, placAdj = TRUE)
expect_true(is.numeric(power))
expect_true(all(power > 0 & power <= 1))
})
test_that("powMCT works with two-sided alternative", {
power <- powMCT(contMat, altModels = fmodels, n = 50, alpha = 0.05, sigma = 1, alternative = "two.sided")
expect_true(is.numeric(power))
expect_true(all(power > 0 & power <= 1))
})
########################################################
## Error testing
########################################################
test_that("powMCT errors when required arguments are missing", {
expect_error(powMCT(contMat, altModels = fmodels), "Either S or both n and sigma need to be specified")
expect_error(powMCT(contMat, n = 50, sigma = 1), "altModels argument needs to be specified")
})
test_that("powMCT detects invalid inputs", {
expect_error(powMCT(list(contMat), altModels = fmodels, n = 50, sigma = 1), "contMat needs to be a matrix")
expect_error(powMCT(contMat, altModels = fmodels, n = rep(50, 2), sigma = 1), "n needs to be of length nrow")
expect_error(powMCT(contMat, altModels = fmodels, n = 1, sigma = 1), "cannot compute power: specified \"n\" and dose vector result in df = 0")
S <- matrix(1, nrow = 6, ncol = 6)
badS1 <- matrix(1, nrow = 3, ncol = 3)
badS2 <- matrix(1, nrow = 5, ncol = 6)
expect_error(powMCT(contMat, altModels = fmodels, S = S), "need to specify degrees of freedom in \"df\", when specifying \"S\"")
expect_error(powMCT(contMat, altModels = fmodels, S = S, n = 50), "Need to specify either \"S\" or both \"n\" and \"sigma\"")
expect_error(powMCT(contMat, altModels = fmodels, S = badS1, df = 45), "S needs to have as many rows&cols as there are doses")
expect_error(powMCT(contMat, altModels = fmodels, S = badS2, df = 45), "S needs to be a square matrix")
fmodels2 <- Mods(linear = NULL, emax = 25, logistic = c(50, 10.88111),
exponential = 85, betaMod = rbind(c(0.33, 2.31), c(1.39, 1.39)),
doses = c(0, 10, 25, 50, 100), placEff = 0, maxEff = 0.4)
expect_error(powMCT(contMat, altModels = fmodels2, n = 50, sigma = 1), "Incompatible contMat and muMat")
})
########################################################
## Test power calculations
########################################################
test_that("powMCT gives same result as power.t.test", {
doses <- c(0, 1)
fmodels <- Mods(linear = NULL, doses = doses, placEff = 0, maxEff = 0.4)
contMat <- optContr(fmodels, w = 1)
power1 <- powMCT(contMat, altModels = fmodels, n = 50, sigma = 1)
power2 <- powMCT(contMat, altModels = fmodels, n = 50, sigma = 1, alpha = 0.05, alternative = "two.sided")
expect_equal(as.numeric(power1), power.t.test(n = 50, delta = 0.4, sd = 1, sig.level = 0.025, alternative = "one.sided")$power, tolerance = 0.001)
expect_equal(as.numeric(power2), power.t.test(n = 50, delta = 0.4, sd = 1, sig.level = 0.05, alternative = "two.sided")$power, tolerance = 0.001)
})
## compare power to externally calculated power values
test_that("powMCT calculates power correctly", {
doses <- c(0, 25, 100, 300)
fmodels <- Mods(emax = 45, sigEmax = c(100,3 ), logistic = c(45, 15),
exponential = 60, quadratic = -0.0022,
doses = doses, placEff = 0, maxEff = 1)
contMat <- optContr(fmodels, w = 1)
power <- powMCT(contMat, altModels = fmodels, n = 100, sigma = 3)
expect_equal(as.numeric(power), c(0.672, 0.754, 0.817, 0.757, 0.635), tolerance = 0.01)
})
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.