dosresmeta {dosresmeta} | R Documentation |
Multivariate Dose-Response Meta-Analysis
Description
The function dosresmeta
estimates a dose-response curve from either single or multiple summarized dose-response data, taking into account
the correlation among observations and heterogeneity across studies. The function dosresmeta.fit
is a wrapper for actual fitting functions based on
different estimation methods, usually called internally. See dosresmeta-package
for an overview.
Usage
dosresmeta(formula, id, v, type, cases, n, sd, data, mod = ~1,
intercept = F, center = T, se, lb, ub, covariance = "gl",
method = "reml", proc = "2stage", Slist, method.smd = "cohen",
control = list())
dosresmeta.fit(X, Z, y, Slist, id, method, control, proc, mod, v, data)
Arguments
formula |
an object of class " |
id |
an vector to specify the id variable for the studies included in the analysis. Optional if estimating a dose-response model from a single study. |
v |
a vector to specify the variances of the reported outcome. Alternatively the user can provide the standard error in the |
type |
an optional vector (or a string) required when the outcome is log relative risks. It specifies the study-specific design.
The values for case-control, incidence-rate, and cumulative incidence data are |
cases |
a vector to specify the number of cases for each exposure level. Required to reconstruct the (co)variance matrix for log relative risks. |
n |
a vector to specify the total number of subjects for each exposure level. Required to reconstruct the (co)variance matrix for log relative risks.
For incidence-rate data |
sd |
a vector to specify the standard deviation. Required to reconstruct the (co)variance matrix for differences and standardized mean differences. |
data |
a data frame (or object coercible by |
mod |
an object of class " |
intercept |
a logical value to specify if an intercept term needs to be included in the model. See details. |
center |
a logical value to specify if the design matrix need to be center at the referent ones. See details. |
se |
an optional vector to specify the standard error of the reported log relative risks; needed if |
lb |
an optional vector to specify the lower bound of the confidence interval for the reported relative risks; needed if |
ub |
an optional vector to specify the upper bound of the confidence interval for the reported relative risks; needed if |
covariance |
method to approximate the (co)variance matrix of the outcome. Options are " |
method |
method used to estimate the (pooled) dose-response relation: " |
proc |
" |
Slist |
list of approximated or given (co)variance matrices. |
method.smd |
character string indicating the method to be used. Options are |
control |
list of parameters for controlling the fitting process. These are passed to |
X |
processed design matrix of fixed effects. |
Z |
processed design matrix of random effects. |
y |
processed outcome vector. |
Details
The function defines all the elements required to estimate a dose-response association taking into account the correlation among the observations.
If the (co)variance matrix is not provided then it is approximated depending of the type of outcome specified through the covariance
argument.
The dose-response model is specified in the formula
. Typically the outcome is expressed as a contrast to a reference exposure level, so that the model
does not have an intercept and the values in the design matrix need to be centered at the referent values, as described by Qin Liu et al, 2009.
This is internally done, respectively, when intercept = FALSE
and center = TRUE
(default values).
The function calls the wrapper dosresmeta.fit
to perform the actual fitting. The latter prepares the data and calls specific fitting functions,
depending on the chosen procedure and method. For the two stages procedure, the second part of the analysis is performed using the function mvmeta.fit
from the mvmeta
package. Different estimator are implemented in the package. The estimation options available are
Fixed-effects
Maximum likelihood (ML)
Restricted maximum likelihood (REML)
Method of moments (currently available only for the two stage procedure)
The fitting procedure can be controlled through the additional terms specified in control, which are passed to the function dosresmeta.control
.
Value
The dosresmeta
function typically returns a list of object of class dosresmeta
representing the meta-analytical model fit,
as described in dosresmetaObject
.
Author(s)
Alessio Crippa, alessio.crippa@ki.se
References
Greenland, S., Longnecker, M. P. (1992). Methods for trend estimation from summarized dose-response data, with applications to meta-analysis. American journal of epidemiology, 135(11), 1301-1309.
Orsini, N., Bellocco, R., Greenland, S. (2006). Generalized least squares for trend estimation of summarized dose-response data. Stata Journal, 6(1), 40.
Liu, Q., Cook, N. R., Bergstrom, A., Hsieh, C. C. (2009). A two-stage hierarchical regression model for meta-analysis of epidemiologic nonlinear dose-response data. Computational Statistics & Data Analysis, 53(12), 4157-4167.
Gasparrini, A., Armstrong, B., Kenward, M. G. (2012). Multivariate meta-analysis for non-linear and other multi-parameter associations. Statistics in Medicine, 31(29), 3821-3839.
See Also
dosresmeta-package
, mvmeta
, covar.logrr
, covar.smd
Examples
## First example: Single case-control study
## Linear trend estimation
data("cc_ex")
## Fitting the model
mod1 <- dosresmeta(formula = logrr ~ dose, type = "cc", cases = case,
n = n, lb = lb, ub = ub, data= cc_ex)
summary(mod1)
## Results
predict(mod1, delta = 1, expo = TRUE)
## Second example: Multiple studies
## Linear and quadratic trend using random-effects meta-analysis
data("alcohol_cvd")
## Linear trend
lin <- dosresmeta(formula = logrr ~ dose, type = type, id = id,
se = se, cases = cases, n = n, data = alcohol_cvd)
summary(lin)
## Predicted linear trend
predict(lin, delta = 1, expo = TRUE)
## Non-linear (quadratic) trend
quadr <- dosresmeta(formula = logrr ~ dose + I(dose^2), type = type, id = id,
se = se, cases = cases, n = n, data = alcohol_cvd)
summary(quadr)
## Graphical results
with(predict(quadr, expo = TRUE, order = TRUE), {
plot(dose, pred, log = "y", type = "l",
xlim = c(0, 45), ylim = c(.4, 2))
lines(dose, ci.lb, lty = 2)
lines(dose, ci.ub, lty = 2)
rug(dose, quiet = TRUE)
})
## Third example: Continous outcome (smd)
data("ari")
mod3 <- dosresmeta(formula = y ~ dose + I(dose^2), id = id,
sd = sd, n = n, covariance = "smd", data = ari)
summary(mod3)
## Graphical results
newdata <- data.frame(dose = seq(0, 30, 1))
with(predict(mod3, newdata, order = TRUE), {
plot(dose, pred, type = "l",
ylim = c(0, .6))
lines(dose, ci.lb, lty = 2)
lines(dose, ci.ub, lty = 2)
rug(dose, quiet = TRUE)
})