| stdCoxph | R Documentation |
stdCoxph performs regression standardization in Cox proportional hazards models,
at specified values of the exposure, over the sample covariate distribution.
Let T, X, and Z be the survival outcome, the exposure, and a
vector of covariates, respectively. stdCoxph uses a fitted Cox
proportional hazards model to estimate the standardized
survival function \theta(t,x)=E\{S(t|X=x,Z)\}, where t is a specific value of T,
x is a specific value of X, and the expectation is over the marginal
distribution of Z.
stdCoxph(fit, data, X, x, t, clusterid, subsetnew)
fit |
an object of class |
data |
a data frame containing the variables in the model. This should be the same
data frame as was used to fit the model in |
X |
a string containing the name of the exposure variable |
x |
an optional vector containing the specific values of |
t |
an optional vector containing the specific values of |
clusterid |
an optional string containing the name of a cluster identification variable when data are clustered. |
subsetnew |
an optional logical statement specifying a subset of observations to be used in the standardization. This set is assumed to be a subset of the subset (if any) that was used to fit the regression model. |
stdCoxph assumes that a Cox proportional hazards model
\lambda(t|X,Z)=\lambda_0(t)exp\{h(X,Z;\beta)\}
has been fitted. Breslow's
estimator of the cumulative baseline hazard \Lambda_0(t)=\int_0^t\lambda_0(u)du
is used together with the partial likelihood estimate of \beta to obtain
estimates of the survival function S(t|X=x,Z):
\hat{S}(t|X=x,Z)=exp[-\hat{\Lambda}_0(t)exp\{h(X=x,Z;\hat{\beta})\}].
For each t in the t argument and for each x in the x argument,
these estimates are averaged across all subjects (i.e. all observed values of Z)
to produce estimates
\hat{\theta}(t,x)=\sum_{i=1}^n \hat{S}(t|X=x,Z_i)/n,
where Z_i is the value of Z for subject i, i=1,...,n.
The variance for \hat{\theta}(t,x) is obtained by the sandwich formula.
An object of class "stdCoxph" is a list containing
call |
the matched call. |
input |
|
est |
a matrix with |
vcov |
a list with |
Standardized survival functions are sometimes referred to as (direct) adjusted survival functions in the literature.
stdCoxph does not currently handle time-varying exposures or covariates.
stdCoxph internally loops over all values in the t argument. Therefore,
the function will usually be considerably faster if length(t) is small.
The variance calculation performed by stdCoxph does not condition on
the observed covariates \bar{Z}=(Z_1,...,Z_n). To see how this matters,
note that
var\{\hat{\theta}(t,x)\}=E[var\{\hat{\theta}(t,x)|\bar{Z}\}]+var[E\{\hat{\theta}(t,x)|\bar{Z}\}].
The usual parameter \beta in a Cox proportional hazards model does not
depend on \bar{Z}. Thus, E(\hat{\beta}|\bar{Z}) is independent of
\bar{Z} as well (since E(\hat{\beta}|\bar{Z})=\beta), so that the
term var[E\{\hat{\beta}|\bar{Z}\}] in the corresponding variance
decomposition for var(\hat{\beta}) becomes equal to 0. However,
\theta(t,x) depends on \bar{Z} through the average over the sample
distribution for Z, and thus the term var[E\{\hat{\theta}(t,x)|\bar{Z}\}]
is not 0, unless one conditions on \bar{Z}. The variance calculation by
Gail and Byar (1986) ignores this term, and thus effectively conditions on
\bar{Z}.
Arvid Sjolander
Chang I.M., Gelman G., Pagano M. (1982). Corrected group prognostic curves and summary statistics. Journal of Chronic Diseases 35, 669-674.
Gail M.H. and Byar D.P. (1986). Variance calculations for direct adjusted survival curves, with applications to testing for no treatment effect. Biometrical Journal 28(5), 587-599.
Makuch R.W. (1982). Adjusted survival curve estimation using covariates. Journal of Chronic Diseases 35, 437-443.
Sjolander A. (2016). Regression standardization with the R-package stdReg. European Journal of Epidemiology 31(6), 563-574.
Sjolander A. (2016). Estimation of causal effect measures with the R-package stdReg. European Journal of Epidemiology 33(9), 847-858.
require(survival)
n <- 1000
Z <- rnorm(n)
X <- rnorm(n, mean=Z)
T <- rexp(n, rate=exp(X+Z+X*Z)) #survival time
C <- rexp(n, rate=exp(X+Z+X*Z)) #censoring time
U <- pmin(T, C) #time at risk
D <- as.numeric(T < C) #event indicator
dd <- data.frame(Z, X, U, D)
fit <- coxph(formula=Surv(U, D)~X+Z+X*Z, data=dd, method="breslow")
fit.std <- stdCoxph(fit=fit, data=dd, X="X", x=seq(-1,1,0.5), t=1:5)
print(summary(fit.std, t=3))
plot(fit.std)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.