AF.ch {AF} | R Documentation |
Attributable fraction function for cohort sampling designs with time-to-event outcomes. NOTE! Deprecated function. Use AFcoxph
.
Description
AF.ch
estimates the model-based adjusted attributable fraction function for data from cohort sampling designs with time-to-event outcomes.
Usage
AF.ch(formula, data, exposure, ties = "breslow", times, clusterid)
Arguments
formula |
a formula object, with the response on the left of a ~ operator, and the terms on the right. The response must be a survival object as returned by the |
data |
an optional data frame, list or environment (or object coercible by |
exposure |
the name of the exposure variable as a string. The exposure must be binary (0/1) where unexposed is coded as 0. |
ties |
a character string specifying the method for tie handling. If there are no tied death times all the methods are equivalent. Uses the Breslow method by default. |
times |
a scalar or vector of time points specified by the user for which the attributable fraction function is estimated. If not specified the observed death times will be used. |
clusterid |
the name of the cluster identifier variable as a string, if data are clustered. |
Details
Af.ch
estimates the attributable fraction for a time-to-event outcome
under the hypothetical scenario where a binary exposure X
is eliminated from the population. The estimate is adjusted for confounders Z
by the Cox proportional hazards model (coxph
). Let the AF function be defined as
AF=1-\frac{\{1-S_0(t)\}}{\{1-S(t)\}}
where S_0(t)
denotes the counterfactual survival function for the event if
the exposure would have been eliminated from the population at baseline and S(t)
denotes the factual survival function.
If Z
is sufficient for confounding control, then S_0(t)
can be expressed as E_Z\{S(t\mid{X=0,Z })\}
.
The function uses Cox proportional hazards regression to estimate S(t\mid{X=0,Z})
, and the marginal sample distribution of Z
to approximate the outer expectation (Sjölander and Vansteelandt, 2014). If clusterid
is supplied, then a clustered sandwich formula is used in all variance calculations.
Value
AF.est |
estimated attributable fraction function for every time point specified by |
AF.var |
estimated variance of |
S.est |
estimated factual survival function; |
S.var |
estimated variance of |
S0.est |
estimated counterfactual survival function if exposure would be eliminated; |
S0.var |
estimated variance of |
object |
the fitted model. Fitted using Cox proportional hazard, |
Author(s)
Elisabeth Dahlqwist, Arvid Sjölander
References
Chen, L., Lin, D. Y., and Zeng, D. (2010). Attributable fraction functions for censored event times. Biometrika 97, 713-726.
Sjölander, A. and Vansteelandt, S. (2014). Doubly robust estimation of attributable fractions in survival analysis. Statistical Methods in Medical Research. doi: 10.1177/0962280214564003.
See Also
The new and more general version of the function: AFcoxph
. coxph
and Surv
used for fitting the Cox proportional hazards model.
Examples
# Simulate a sample from a cohort sampling design with time-to-event outcome
expit <- function(x) 1 / (1 + exp( - x))
n <- 500
time <- c(seq(from = 0.2, to = 1, by = 0.2))
Z <- rnorm(n = n)
X <- rbinom(n = n, size = 1, prob = expit(Z))
Tim <- rexp(n = n, rate = exp(X + Z))
C <- rexp(n = n, rate = exp(X + Z))
Tobs <- pmin(Tim, C)
D <- as.numeric(Tobs < C)
#Ties created by rounding
Tobs <- round(Tobs, digits = 2)
# Example 1: non clustered data from a cohort sampling design with time-to-event outcomes
data <- data.frame(Tobs, D, X, Z)
# Estimation of the attributable fraction
AF.ch_est <- AF.ch(formula = Surv(Tobs, D) ~ X + Z + X * Z, data = data,
exposure = "X", times = time)
summary(AF.ch_est)
# Example 2: clustered data from a cohort sampling design with time-to-event outcomes
# Duplicate observations in order to create clustered data
id <- rep(1:n, 2)
data <- data.frame(Tobs = c(Tobs, Tobs), D = c(D, D), X = c(X, X), Z = c(Z, Z), id = id)
# Estimation of the attributable fraction
AF.ch_clust <- AF.ch(formula = Surv(Tobs, D) ~ X + Z + X * Z, data = data,
exposure = "X", times = time, clusterid = "id")
summary(AF.ch_clust)
plot(AF.ch_clust, CI = TRUE)