library(testthat)
library(CohortMethod)
test_that("Logistic regression power calculations", {
alpha <- 0.05 # Significance level
power <- 0.80 # Desired power
p_null <- 0.1 # Baseline probability of event
n <- 400 # Sample size
mdrr <- CohortMethod:::computeMdrrFromAggregateStats(pTarget = NA,
totalEvents = n * p_null,
totalSubjects = n,
alpha = alpha,
power = power,
twoSided = TRUE,
modelType = "logistic")
# Estimate the coefficient (log(odds ratio))
beta <- log(mdrr)
# Estimate the standard error (for a simple logistic model, it's based on p_null and sample size)
se_beta <- sqrt((1 / (n * p_null * (1 - p_null))))
# Wald Z statistic
z_value <- beta / se_beta
# Determine power using normal distribution
z_critical <- qnorm(1 - alpha / 2)
power_achieved <- pnorm(z_value - z_critical)
expect_equal(power_achieved, power, tolerance = 1e-3)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.