The following fictitious example of a prospective cohort study will be used to validate the correct estimation of the BSW package in R.
| Exposed | Non-Exposed | |
|---|---|---|
| Cases | 200 | 50 | 
| Non-Cases | 50 | 200 | 
library(testthat)
library(BSW)
df <- data.frame(y = rep(c(0, 1), each = 250), 
                 x = rep(c(0, 1, 0, 1), times = c(200, 50, 50, 200))
                 )
RR <- (200 * 250) / (50 * 250)
SE <- sqrt((1/200 + 1/50) - (1/250 + 1/250))
fit <- bsw(y ~ x, df)
out <- summary(fit)
Call:
bsw(formula = y ~ x, data = df)
Convergence: TRUE
Coefficients:
             Estimate Std. Error   z value     Pr(>|z|)  RR      2.5%    97.5%
(Intercept) -1.609438  0.1264911 -12.72372 4.365487e-37 0.2 0.1560848 0.256271
x            1.386294  0.1303840  10.63239 2.106385e-26 4.0 3.0979677 5.164676
Iterations: 6 The relative risk for exposed individuals compared to non-exposed individuals can be calculated from
test_that(desc = "Estimated relative risk is equal to 4",
          code = {
                  expect_equal(object = unname(exp(coef(fit)[2])),
                               expected = RR)
            }
          )
Test passed 🎊The standard error of the natural logarithm of the relative risk can be calculated from
test_that(desc = "Estimated standard error is equal to 0.1303840",
          code = {
                  expect_equal(object = unname(out$std.err[2]), 
                               expected = SE)
            }
          )
Test passed 🥇The z-value can be calculated from
test_that(desc = "Estimated z-value is equal to 10.63239",
          code = {
                  expect_equal(object = unname(out$z.value[2]), 
                               expected = log(RR) / SE)
            }
          )
Test passed 😀The 95% confidence interval limits can be calculated from