Analysis of cluster randomized trial with spillover
CRTanalysis.Rd
CRTanalysis
carries out a statistical analysis of a cluster randomized trial (CRT).
Usage
CRTanalysis(
trial,
method = "GEE",
distance = "nearestDiscord",
scale_par = NULL,
cfunc = "L",
link = "logit",
numerator = "num",
denominator = "denom",
excludeBuffer = FALSE,
alpha = 0.05,
baselineOnly = FALSE,
baselineNumerator = "base_num",
baselineDenominator = "base_denom",
personalProtection = FALSE,
clusterEffects = TRUE,
spatialEffects = FALSE,
requireMesh = FALSE,
inla_mesh = NULL
)
Arguments
- trial
an object of class
"CRTsp"
or a data frame containing locations in (x,y) coordinates, cluster assignments (factorcluster
), and arm assignments (factorarm
) and outcome data (see details).- method
statistical method with options:
"EMP"
simple averages of the data "T"
comparison of cluster means by t-test "GEE"
Generalised Estimating Equations "LME4"
Generalized Linear Mixed-Effects Models "INLA"
Integrated Nested Laplace Approximation (INLA) "MCMC"
Markov chain Monte Carlo using "JAGS"
"WCA"
Within cluster analysis - distance
Measure of distance or surround with options:
"nearestDiscord"
distance to nearest discordant location (km) "disc"
disc "kern"
surround based on sum of normal kernels "hdep"
Tukey half space depth "sdep"
simplicial depth - scale_par
numeric: pre-specified value of the spillover parameter or disc radius for models where this is fixed (
cfunc = "R"
).- cfunc
transformation defining the spillover function with options:
"Z"
arm effects not considered reference model "X"
spillover not modelled the only valid value of cfunc
for methods"EMP"
,"T"
and"GEE"
"L"
inverse logistic (sigmoid) the default for "INLA"
and"MCMC"
methods"P"
inverse probit (error function) available with "INLA"
and"MCMC"
methods"S"
piecewise linear only available with the "MCMC"
method"E"
estimation of scale factor only available with distance = "disc"
ordistance = "kern"
"R"
rescaled linear - link
link function with options:
"logit"
(the default). numerator
has a binomial distribution with denominatordenominator
."log"
numerator
is Poisson distributed with an offset of log(denominator
)."cloglog"
numerator
is Bernoulli distributed with an offset of log(denominator
)."identity"
The outcome is numerator/denominator
with a normally distributed error function.- numerator
string: name of numerator variable for outcome
- denominator
string: name of denominator variable for outcome data (if present)
- excludeBuffer
logical: indicator of whether any buffer zone (records with
buffer=TRUE
) should be excluded from analysis- alpha
numeric: confidence level for confidence intervals and credible intervals
- baselineOnly
logical: indicator of whether required analysis is of effect size or of baseline only
- baselineNumerator
string: name of numerator variable for baseline data (if present)
- baselineDenominator
string: name of denominator variable for baseline data (if present)
- personalProtection
logical: indicator of whether the model includes local effects with no spillover
- clusterEffects
logical: indicator of whether the model includes cluster random effects
- spatialEffects
logical: indicator of whether the model includes spatial random effects (available only for
method = "INLA"
)- requireMesh
logical: indicator of whether spatial predictions are required (available only for
method = "INLA"
)- inla_mesh
string: name of pre-existing INLA input object created by
compute_mesh()
Value
list of class CRTanalysis
containing the following results of the analysis:
description
: description of the datasetmethod
: statistical methodpt_ests
: point estimatesint_ests
: interval estimatesmodel_object
: object returned by the fitting routinespillover
: function values and statistics describing the estimated spillover
Details
CRTanalysis
is a wrapper for the statistical analysis packages:
geepack,
INLA,
jagsUI,
and the t.test
function of package stats
.
The wrapper does not provide an interface to the full functionality of these packages.
It is specific for typical analyses of cluster randomized trials with geographical clustering. Further details
are provided in the vignette.
The key results of the analyses can be extracted using a summary()
of the output list.
The model_object
in the output list is the usual output from the statistical analysis routine,
and can be also be inspected with summary()
, or analysed using stats::fitted()
for purposes of evaluation of model fit etc..
For models with a complementary log-log link function specified with link = "cloglog"
.
the numerator must be coded as 0 or 1. Technically the binomial denominator is then 1.
The value of denominator
is used as a rate multiplier.
With the "INLA"
and "MCMC"
methods 'iid' random effects are used to model extra-Poisson variation.
Interval estimates for the coefficient of variation of the cluster level outcome are calculated using the method of
Vangel (1996).
Examples
# \donttest{
example <- readdata('exampleCRT.txt')
# Analysis of test dataset by t-test
exampleT <- CRTanalysis(example, method = "T")
#> No non-linear parameter. No fixed effects of distance -
summary(exampleT)
#>
#> =====================CLUSTER RANDOMISED TRIAL ANALYSIS =================
#> Analysis method: T
#> Link function: logit
#> Model formula: arm + (1 | cluster)
#> No modelling of spillover
#> Estimates: Control: 0.364 (95% CL: 0.286 0.451 )
#> Intervention: 0.21 (95% CL: 0.147 0.292 )
#> Efficacy: 0.423 (95% CL: 0.208 0.727 )
#> Coefficient of variation: 41.6 % (95% CL: 31.2 63.1 )
#>
#> P-value (2-sided): 0.006879064
# Standard GEE analysis of test dataset ignoring spillover
exampleGEE <- CRTanalysis(example, method = "GEE")
#> No non-linear parameter. No fixed effects of distance -
summary(exampleGEE)
#>
#> =====================CLUSTER RANDOMISED TRIAL ANALYSIS =================
#> Analysis method: GEE
#> Link function: logit
#> Model formula: arm
#> No modelling of spillover
#> Estimates: Control: 0.373 (95% CL: 0.306 0.445 )
#> Intervention: 0.228 (95% CL: 0.167 0.305 )
#> Efficacy: 0.388 (95% CL: 0.136 0.573 )
#> Coefficient of variation: 41.6 % (95% CL: 31.2 63.1 )
#> Intracluster correlation (ICC) : 0.0573 (95% CL: 0.00643 0.108 )
#>
# LME4 analysis with error function spillover function
exampleLME4 <- CRTanalysis(example, method = "LME4", cfunc = "P")
#> Estimated scale parameter: 0.45 Signed distance -Signed distance to other arm (km)
summary(exampleLME4)
#>
#> =====================CLUSTER RANDOMISED TRIAL ANALYSIS =================
#> Analysis method: LME4
#> Link function: logit
#> Measure of distance or surround: Signed distance to other arm (km)
#> Estimated scale parameter: 0.45
#> Model formula: pvar + (1 | cluster)
#> Error function model for spillover
#> Estimates: Control: 0.418 (95% CL: 0.331 0.508 )
#> Intervention: 0.185 (95% CL: 0.135 0.251 )
#> Efficacy: 0.555 (95% CL: 0.329 0.705 )
#> Spillover interval(km): 4.22 (95% CL: 4.2 4.23 )
#> % locations contaminated: 91.6 (95% CL: 90.6 92 %)
#> Total effect : 0.232 (95% CL: 0.117 0.345 )
#> Ipsilateral Spillover : 0.0234 (95% CL: 0.013 0.0323 )
#> Contralateral Spillover : 0.0419 (95% CL: 0.0197 0.065 )
#> Coefficient of variation: 41.6 % (95% CL: 31.2 63.1 )
#> deviance: 1374.215
#> AIC : 1382.215 including penalty for the spillover scale parameter
# }