test_that("compare outputs with SAS (stratified)", {
treatment <- c(rep("pbo", 119), rep("exp", 116))
response <- c(rep(0, 70), rep(1, 49), rep(0, 46), rep(1, 70))
stratum <- c(rep(1:3, 38), 1, 3, 3, 1, 2, 2, rep(1:3, 37), 1, 1, 2, 3)
result <- rate_compare(
formula = response ~ factor(treatment, levels = c("pbo", "exp")),
strata = stratum,
delta = 0,
weight = "cmh",
test = "one.sided",
eps = 1e-06,
alpha = 0.05
)
# Compare with outcome from SAS %rate0compare() macro
expect_equal(result$est, 19.181363786 / 100, tolerance = 1e-5)
expect_equal(result$z_score, 2.9216181843, tolerance = 1e-5)
expect_equal(result$p, 0.0017410907, tolerance = 1e-5)
expect_equal(result$lower, 6.3399769229 / 100, tolerance = 1e-5)
expect_equal(result$upper, 31.396078455 / 100, tolerance = 1e-5)
})
test_that("compare outputs with SAS (unstratified)", {
treatment <- c(rep("pbo", 119), rep("exp", 116))
response <- c(rep(0, 70), rep(1, 49), rep(0, 46), rep(1, 70))
result <- rate_compare(
formula = response ~ factor(treatment, levels = c("pbo", "exp")),
delta = 0,
weight = "equal",
test = "two.sided",
eps = 1e-06,
alpha = 0.05
)
# Compare with outcome from SAS %rate0compare() macro
expect_equal(result$est, 19.168356998 / 100, tolerance = 1e-5)
expect_equal(result$z_score, 2.9321947913, tolerance = 1e-5)
expect_equal(result$p, 0.0033657557, tolerance = 1e-5)
expect_equal(result$lower, 6.3821269823 / 100, tolerance = 1e-5)
expect_equal(result$upper, 31.334314192 / 100, tolerance = 1e-5)
})
test_that("rate_compare() matches prop_test_mn for unstratified analysis", {
ana <- data.frame(
treatment = c(rep(0, 100), rep(1, 100)),
response = c(rep(0, 80), rep(1, 20), rep(0, 40), rep(1, 60)),
stratum = c(rep(1:4, 12), 1, 3, 3, 1, rep(1:4, 12), rep(1:4, 25))
)
x0 <- sum(ana$response[1:100])
x1 <- sum(ana$response[101:200])
n0 <- 100
n1 <- 100
compare1 <- rate_compare(response ~ treatment, data = ana)
compare2 <- prop_test_mn(x0, n0, x1, n1)
o1 <- c(compare1$est, compare1$lower, compare1$upper, compare1$p) * 100
o2 <- c(compare2$est, compare2$lower, compare2$upper, compare2$p)
expect_equal(o1, o2, tolerance = 1e-3)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.