Probabilistic sensitivity analysis for exposure misclassification of person-time data and random error.
Source:R/probsens.irr.R
probsens.irr.Rd
Probabilistic sensitivity analysis to correct for exposure misclassification when person-time data has been collected.
Non-differential misclassification is assumed when only the two bias parameters
seca.parms
and spca.parms
are provided. Adding the 2 parameters
seexp.parms
and spexp.parms
(i.e. providing the 4 bias parameters)
evaluates a differential misclassification.
Usage
probsens.irr(
counts,
pt = NULL,
reps = 1000,
seca.parms = list(dist = c("constant", "uniform", "triangular", "trapezoidal",
"logit-logistic", "logit-normal", "beta"), parms = NULL),
seexp.parms = NULL,
spca.parms = list(dist = c("constant", "uniform", "triangular", "trapezoidal",
"logit-logistic", "logit-normal", "beta"), parms = NULL),
spexp.parms = NULL,
corr.se = NULL,
corr.sp = NULL,
discard = TRUE,
alpha = 0.05
)
Arguments
- counts
A table or matrix where first row contains disease counts and second row contains person-time at risk, and first and second columns are exposed and unexposed observations, as:
Exposed Unexposed Cases a b Person-time N1 N0 - pt
A numeric vector of person-time at risk. If provided,
counts
must be a numeric vector of disease counts.- reps
Number of replications to run.
- seca.parms
List defining the sensitivity of exposure classification among those with the outcome. The first argument provides the probability distribution function (uniform, triangular, trapezoidal, logit-logistic, logit-normal, or beta) and the second its parameters as a vector. Logit-logistic and logit-normal distributions can be shifted by providing lower and upper bounds. Avoid providing these values if a non-shifted distribution is desired.
constant: constant value,
uniform: min, max,
triangular: lower limit, upper limit, mode,
trapezoidal: min, lower mode, upper mode, max,
logit-logistic: location, scale, lower bound shift, upper bound shift,
logit-normal: location, scale, lower bound shift, upper bound shift,
beta: alpha, beta.
- seexp.parms
List defining the sensitivity of exposure classification among those without the outcome.
- spca.parms
List defining the specificity of exposure classification among those with the outcome.
- spexp.parms
List defining the specificity of exposure classification among those without the outcome.
- corr.se
Correlation between case and non-case sensitivities.
- corr.sp
Correlation between case and non-case specificities.
- discard
A logical scalar. In case of negative adjusted count, should the draws be discarded? If set to FALSE, negative counts are set to zero.
- alpha
Significance level.
Value
A list with elements:
- obs.data
The analyzed 2 x 2 table from the observed data.
- obs.measures
A table of observed incidence rate ratio with exact confidence interval.
- adj.measures
A table of corrected incidence rate ratios.
- sim.df
Data frame of random parameters and computed values.
References
Lash, T.L., Fox, M.P, Fink, A.K., 2009 Applying Quantitative Bias Analysis to Epidemiologic Data, pp.117--150, Springer.
Examples
set.seed(123)
# Exposure misclassification, non-differential
probsens.irr(matrix(c(2, 67232, 58, 10539000),
dimnames = list(c("GBS+", "Person-time"), c("HPV+", "HPV-")), ncol = 2),
reps = 20000,
seca.parms = list("trapezoidal", c(.4, .45, .55, .6)),
spca.parms = list("constant", 1))
#> --Observed data--
#> Outcome: GBS+
#> Comparing: HPV+ vs. HPV-
#>
#> HPV+ HPV-
#> GBS+ 2 58
#> Person-time 67232 10539000
#>
#> 2.5% 97.5%
#> Observed Incidence Rate Ratio: 5.4053694 0.6394374 20.4256527
#> ---
#> Median
#> Incidence Rate Ratio -- systematic error: 5.5632127
#> Incidence Rate Ratio -- systematic and random error: 5.6517056
#> 2.5th percentile
#> Incidence Rate Ratio -- systematic error: 5.5179730
#> Incidence Rate Ratio -- systematic and random error: 0.9864857
#> 97.5th percentile
#> Incidence Rate Ratio -- systematic error: 5.6261720
#> Incidence Rate Ratio -- systematic and random error: 31.5871751