The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
The load_data
function takes in raw data and creates a
data object that can be accepted by the plot_design
and
analyze
functions. We use the made-up dataframe
sw_data_example
to demonstrate the workflow.
data(sw_data_example)
head(sw_data_example)
#> cluster period trt prob outcome_bin outcome_cont
#> 1 1 1 0 0.5667807 0 -3.02179837
#> 2 1 1 0 0.5667807 0 -0.07145287
#> 3 1 1 0 0.5667807 1 0.96807617
#> 4 1 1 0 0.5667807 0 0.29456948
#> 5 1 1 0 0.5667807 1 -0.83921584
#> 6 1 1 0 0.5667807 1 -0.42335941
dat <- load_data(
time = "period",
cluster_id = "cluster",
individual_id = NULL,
treatment = "trt",
outcome = "outcome_bin",
data = sw_data_example
)
#> Stepped wedge dataset loaded. Discrete time design with 15 clusters, 5 sequences, and 6 time points.
The plot_design
function produces a diagram of the
stepped wedge design and a summary of the variables.
The analyze
function analyzes the stepped wedge data.
First, we analyze the data using a mixed effects model, with the Time
Average Treament Effect (TATE) as the estimand, assuming an Immediate
Treatment (IT) effect, passing the family = "binomial"
and
link = "logit"
arguments to glmer
.
analysis_1 <- analyze(
dat = dat,
method = "mixed",
estimand_type = "TATE",
exp_time = "IT",
family = binomial,
re = c("clust", "time")
)
print(analysis_1)
#> Treatment effect estimate: -0.189
#> Treatment effect 95% confidence interval: -0.448, 0.07
#> Converged: TRUE
Repeat the analysis, but including a random effect for cluster only, not for cluster-time interaction.
analysis_1b <- analyze(
dat = dat,
method = "mixed",
estimand_type = "TATE",
exp_time = "IT",
family = binomial,
re = "clust"
)
print(analysis_1b)
#> Treatment effect estimate: -0.189
#> Treatment effect 95% confidence interval: -0.448, 0.07
#> Converged: TRUE
Repeat the analysis, but using GEE rather than a mixed model.
analysis_2 <- analyze(
dat = dat,
method = "GEE",
estimand_type = "TATE",
exp_time = "IT",
family = binomial,
corstr = "exchangeable"
)
print(analysis_2)
#> Treatment effect estimate: -0.188
#> Treatment effect 95% confidence interval: -0.438, 0.061
#> Converged:
Mixed model, with Time Average Treament Effect (TATE) as the estimand, using an Exposure Time Indicator (ETI) model.
analysis_3 <- analyze(
dat = dat,
method = "mixed",
estimand_type = "TATE",
exp_time = "ETI",
family = binomial
)
#> boundary (singular) fit: see help('isSingular')
print(analysis_3)
#> Treatment effect estimate: -0.184
#> Treatment effect 95% confidence interval: -0.496, 0.129
#> Converged: TRUE
Mixed model, with Time Average Treatment Effect (TATE) as the estimand, using a Natural Cubic Splines (NCS) model.
analysis_4 <- analyze(
dat = dat,
method = "mixed",
estimand_type = "TATE",
exp_time = "NCS",
family = binomial
)
#> boundary (singular) fit: see help('isSingular')
print(analysis_4)
#> Treatment effect estimate: -0.184
#> Treatment effect 95% confidence interval: -0.497, 0.128
#> Converged: TRUE
Mixed model, with Time Average Treament Effect (TATE) as the estimand, using a Treatment Effect Heterogeneity over exposure time (TEH) model.
analysis_5 <- analyze(
dat = dat,
method = "mixed",
estimand_type = "TATE",
exp_time = "TEH",
family = binomial
)
#> boundary (singular) fit: see help('isSingular')
print(analysis_5)
#> Treatment effect estimate: -0.189
#> Treatment effect 95% confidence interval: -0.448, 0.07
#> Converged: TRUE
Mixed model, with Time Average Treament Effect (TATE) as the estimand, using a Natural Cubic Splines (NCS) model.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.