The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
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[@]dogado.de.
RegCalib is an R package for correcting measurement error in continuous exposures and covariates using regression calibration. It provides corrected coefficients, standard errors, p-values, confidence intervals, and variance-covariance matrices for linear and generalized linear outcome models under external validation study design.
| Function | Method | Supported outcome models | Reference |
|---|---|---|---|
RegCalibDF |
Deattenuation factor method | Linear models ("lm") and generalized linear models
("glm") |
Rosner, Spiegelman, and Willett (1989, 1990); Spiegelman et al. (1997, 2001) |
RegCalibSub |
Substitution method | Linear models ("lm") and generalized linear models
("glm") |
Carroll et al. (2006) |
Both methods support single or multiple error-prone exposures.
# Install devtools once if needed.
install.packages("devtools")
# Install RegCalib from GitHub.
devtools::install_github("JingyuCui639/RegCalib")This example uses the simulated main-study and external-validation
datasets included in the package. The outcome variable,
case, is binary, so both methods are applied using logistic
regression.
# Load the RegCalib package.
library(RegCalib)
# Load the simulated main-study dataset included in RegCalib.
data("main_data_sim", package = "RegCalib")
# Display the first six observations in the main-study dataset.
head(main_data_sim)
# Load the simulated external-validation dataset included in RegCalib.
data("valid_data_sim", package = "RegCalib")
# Display the first six observations in the validation dataset.
head(valid_data_sim)The three surrogate variables measured with error are:
fqtfatinc: surrogate measure of total fat intake;fqcalinc: surrogate measure of total caloric
intake;fqalcinc: surrogate measure of alcohol intake.Their corresponding reference measurements in the validation dataset are:
drtfatinc;drcalinc;dralcinc.The variable agec is an error-free covariate, and
case is the binary outcome.
# Apply the deattenuation factor regression-calibration method.
rcdf <- RegCalibDF(
# Let RegCalib fit the uncorrected outcome model internally.
supplyEstimates = FALSE,
# Supply the main-study data frame.
ms = main_data_sim,
# Supply the external-validation data frame.
vs = valid_data_sim,
# Identify the surrogate, error-prone variables.
sur = c("fqtfatinc", "fqcalinc", "fqalcinc"),
# Identify the corresponding reference variables in the same order.
exp = c("drtfatinc", "drcalinc", "dralcinc"),
# Include age category in both the calibration and outcome models.
covCalib = "agec",
# Do not include additional error-free covariates only in the outcome model.
covOutcomePlus = NULL,
# Identify the binary outcome variable.
outcome = "case",
# Fit a generalized linear outcome model.
method = "glm",
# Use the binomial family for a binary outcome.
family = binomial,
# Use the logit link to fit logistic regression.
link = "logit",
# Indicate that the validation study is external.
external = TRUE,
# Do not supply separate uncorrected coefficient estimates.
pointEstimates = NA,
# Do not supply a separate variance-covariance matrix.
vcovEstimates = NA
)
# Print the complete result object.
rcdf
# Display the corrected coefficient table.
rcdf$correctedCoefTable
# Display the corrected variance-covariance matrix.
rcdf$correctedVCOV
# Display the uncorrected outcome-model coefficient table for comparison.
rcdf$standardCoefTableBecause the outcome model is logistic regression, the corrected coefficients and confidence limits can be exponentiated to obtain odds ratios:
# Exponentiate the corrected log-odds estimates and confidence limits.
corrected_RC_DF <- exp(
cbind(
# Exponentiate the corrected coefficient estimates.
OR = rcdf$correctedCoefTable[, 1],
# Exponentiate the lower limits of the 95% confidence intervals.
"2.5 %" = rcdf$correctedCoefTable[, 5],
# Exponentiate the upper limits of the 95% confidence intervals.
"97.5 %" = rcdf$correctedCoefTable[, 6]
)
)
# Display the corrected odds ratios and 95% confidence intervals.
corrected_RC_DF# Apply the substitution regression-calibration method.
rcsub <- RegCalibSub(
# Supply the main-study data frame.
ms = main_data_sim,
# Supply the external-validation data frame.
vs = valid_data_sim,
# Identify the surrogate, error-prone variables.
sur = c("fqtfatinc", "fqcalinc", "fqalcinc"),
# Identify the corresponding reference variables in the same order.
exp = c("drtfatinc", "drcalinc", "dralcinc"),
# Include age category in the calibration models.
covCalib = "agec",
# Include age category in the outcome model.
covOutcome = "agec",
# Identify the binary outcome variable.
outcome = "case",
# Fit a generalized linear outcome model.
method = "glm",
# Use the binomial family for a binary outcome.
family = binomial,
# Use the logit link to fit logistic regression.
link = "logit",
# Indicate that the validation study is external.
external = TRUE
)
# Print the complete result object.
rcsub
# Display the corrected coefficient table.
rcsub$correctedCoefTable
# Display the corrected variance-covariance matrix.
rcsub$correctedVCOVThe corrected coefficients and confidence limits can again be exponentiated to obtain odds ratios:
# Exponentiate the corrected log-odds estimates and confidence limits.
corrected_RC_SUB <- exp(
cbind(
# Exponentiate the corrected coefficient estimates.
OR = rcsub$correctedCoefTable[, 1],
# Exponentiate the lower limits of the 95% confidence intervals.
"2.5 %" = rcsub$correctedCoefTable[, 5],
# Exponentiate the upper limits of the 95% confidence intervals.
"97.5 %" = rcsub$correctedCoefTable[, 6]
)
)
# Display the corrected odds ratios and 95% confidence intervals.
corrected_RC_SUBFor a continuous outcome, set:
method = "lm"For a generalized linear outcome model, set:
method = "glm"and supply the appropriate family and link.
For example, logistic regression uses:
family = binomial
link = "logit"The package imports the following R packages:
statsdplyrMatrixmatrixcalcThese dependencies are installed automatically when RegCalib is installed.
Rosner B, Willett WC, Spiegelman D (1989). Correction of logistic relative risk estimates and confidence intervals for systematic within-person measurement error. Statistics in Medicine 8, 1051–1069.
Rosner B, Spiegelman D, Willett WC (1990). Correction of logistic regression relative risk estimates and confidence intervals for measurement error: the case of multiple covariates measured with error. American Journal of Epidemiology 132, 734–745.
Spiegelman D, McDermott A, Rosner B (1997). The many uses of the regression calibration method for measurement error bias correction in nutritional epidemiology. American Journal of Clinical Nutrition 65, 1179S–1186S.
Spiegelman D, Carroll RJ, Kipnis V (2001). Efficient regression calibration for logistic regression in main study/internal validation study designs with an imperfect reference instrument. Statistics in Medicine 20, 139–160.
Carroll RJ, Ruppert D, Stefanski LA, Crainiceanu CM (2006). Measurement Error in Nonlinear Models: A Modern Perspective, 2nd ed. Chapman & Hall/CRC.
Maintainer: Jingyu Cui
Email: jingyu.cui@yale.edu
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.
Health stats visible at Monitor.