Nothing
test_that("Overall power correctly calculated", {
# Test if the calculated overall power matches with two special cases (fix cp, fixed LR, without use of Interim Estimate)
design_fix <- getDesignOptimalConditionalErrorFunction(
alpha = 0.025, alpha1 = 0.001, alpha0 = 0.5, conditionalPower = 0.9,
delta1 = 0.5, likelihoodRatioDistribution = "fixed", deltaLR = 1,
firstStageInformation = 2, useInterimEstimate = FALSE)
ncp <- design_fix$delta1 * sqrt(design_fix$firstStageInformation)
power <- 1 - pnorm(qnorm(1 - design_fix$alpha1) - ncp) +
design_fix$conditionalPower * (pnorm(qnorm(1 - design_fix$alpha1) - ncp) - pnorm(qnorm(1 - design_fix$alpha0) - ncp))
expect_equal(getOverallPower(design_fix, design_fix$delta1)$overallPower, power, tolerance = 1e-4)
# Skip remaining tests on CRAN
skip_on_cran()
expect_equal(getOverallPower(design_fix, 0)$overallPower, design_fix$alpha, tolerance = 1e-4)
# Test if the calculated overall power matches with two special cases (cp function, fixed LR, without use of Interim Estimate)
design_function <- getDesignOptimalConditionalErrorFunction(
alpha = 0.05, alpha1 = 0.001, alpha0 = 0.5, conditionalPowerFunction = function(x) pnorm(1-x),
delta1 = 0.7, likelihoodRatioDistribution = "fixed", deltaLR = 1,
firstStageInformation = 10, useInterimEstimate = FALSE
)
ncp <- design_function$delta1 * sqrt(design_function$firstStageInformation)
secondStageRejection <- function(firstStagePValue) {
design_function$conditionalPowerFunction(firstStagePValue) * exp(qnorm(1 - firstStagePValue) * ncp - ncp^2 / 2)
}
integral <- stats::integrate(f = secondStageRejection, lower = design_function$alpha1, upper = design_function$alpha0)$value
power <- 1 - pnorm(qnorm(1 - design_function$alpha1) - ncp) + integral
expect_equal(getOverallPower(design_function, design_function$delta1)$overallPower, power, tolerance = 1e-4)
expect_equal(getOverallPower(design_function, 0)$overallPower, design_function$alpha, tolerance = 1e-4)
})
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.