kernel_sievePH {sievePH} | R Documentation |
Nonparametric Kernel-Smoothed Stratified Mark-Specific Proportional Hazards Model with a Univariate Continuous Mark, Fully Observed in All Failures.
Description
kernel_sievePH
implements estimation and hypothesis testing method of
Sun et al. (2009) for a mark-specific proportional hazards model. The methods
allow separate baseline mark-specific hazard functions for different baseline
subgroups.
Usage
kernel_sievePH(
eventTime,
eventInd,
mark,
tx,
zcov = NULL,
strata = NULL,
formulaPH = ~tx,
tau = NULL,
tband = NULL,
hband = NULL,
nvgrid = 100,
a = NULL,
b = NULL,
ntgrid = NULL,
nboot = 500,
seed = NULL,
maxit = 6
)
Arguments
eventTime |
a numeric vector specifying the observed right-censored event time. |
eventInd |
a numeric vector indicating the event of interest (1 if event, 0 if right-censored). |
mark |
a numeric vector specifying a univariate continuous mark. No
missing values are permitted for subjects with |
tx |
a numeric vector indicating the treatment group (1 if treatment, 0 if placebo). |
zcov |
a data frame with one row per subject specifying possibly
time-dependent covariate(s) (not including |
strata |
a numeric vector specifying baseline strata ( |
formulaPH |
a one-sided formula object (on the right side of the
|
tau |
a numeric value specifying the duration of study follow-up period.
Failures beyond |
tband |
a numeric value between 0 and |
hband |
a numeric value between 0 and 1 specifying the bandwidth of the
kernel smoothing function over mark. By default, |
nvgrid |
an integer value (100 by default) specifying the number of equally spaced mark values between the minimum and maximum of the observed mark for which the treatment effects are evaluated. |
a |
a numeric value between the minimum and maximum of observed mark
values specifying the lower bound of the range for testing the null
hypotheses |
b |
a numeric value between the minimum and maximum of observed mark
specifying the upper bound of the range for testing the null hypotheses
|
ntgrid |
an integer value ( |
nboot |
number of bootstrap iterations (500 by default) for simulating
the distributions of test statistics. If |
seed |
an integer specifying the random number generation seed for reproducing the test statistics and p-values. By default, a specific seed is not set. |
maxit |
Maximum number of iterations to attempt for convergence in estimation. The default is 6. |
Details
kernel_sievePH
analyzes data from a randomized
placebo-controlled trial that evaluates treatment efficacy for a
time-to-event endpoint with a continuous mark. The parameter of interest is
the ratio of the conditional mark-specific hazard functions
(treatment/placebo), which is based on a stratified mark-specific
proportional hazards model. This model assumes no parametric form for the
baseline hazard function nor the treatment effect across different mark
values.
Value
An object of class kernel_sievePH
which can be processed by
summary.kernel_sievePH
to obtain or print a summary of the
results. An object of class kernel_sievePH
is a list containing the
following components:
-
H10
: a data frame with test statistics (first row) and corresponding p-values (second row) for testingH_{10}: HR(v) = 1
for v\in [a, b]
. ColumnsTSUP1
andTint1
include test statistics and p-values for testingH_{10}
vs.H_{1a}: HR(v) \neq 1
for any v\in [a, b]
(general alternative). ColumnsTSUP1m
andTint1m
include test statistics and p-values for testingH_{10}
vs.H_{1m}: HR(v) \leq 1
with strict inequality for some v in[a, b]
(monotone alternative).TSUP1
andTSUP1m
are based on extensions of the classic Kolmogorov-Smirnov supremum-based test.Tint1
andTint1m
are based on generalizations of the integration-based Cramer-von Mises test.Tint1
andTint1m
involve integration of deviations over the whole range of the mark. Ifnboot
isNULL
,H10
is returned asNULL
. -
H20
: a data frame with test statistics (first row) and corresponding p-values (second row) for testingH_{20}
: HR(v) does not depend on v\in [a, b]
. ColumnsTSUP2
andTint2
include test statistics and p-values for testingH_{20}
vs.H_{2a}
: HR depends on v\in [a, b]
(general alternative). ColumnsTSUP2m
andTint2m
include test statistics and p-values for testingH_{20}
vs.H_{2m}
: HR increases as v increases\in [a, b]
(monotone alternative).TSUP2
andTSUP2m
are based on extensions of the classic Kolmogorov-Smirnov supremum-based test.Tint2
andTint2m
are based on generalizations of the integration-based Cramer-von Mises test.Tint2
andTint2m
involve integration of deviations over the whole range of the mark. Ifnboot
isNULL
,H20
is returned asNULL
. -
estBeta
: a data frame summarizing point estimates and standard errors of the mark-specific coefficients for treatment at equally-spaced values between the minimum and the maximum of the observed mark values. -
cBproc1
: a data frame containing equally-spaced mark values in the columnMark
, test processesQ^{(1)}(v)
for observed data in the columnObserved
, andQ^{(1)}(v)
fornboot
independent sets of normal samples in the columns S1, S2,\cdots
. Ifnboot
isNULL
,cBproc1
is returned asNULL
. -
cBproc2
: a data frame containing equally-spaced mark values in the columnMark
, test processesQ^{(2)}(v)
for observed data in the columnObserved
, andQ^{(2)}(v)
fornboot
independent sets of normal samples in the columns S1, S2,\cdots
. Ifnboot
isNULL
,cBproc2
is returned asNULL
. -
Lambda0
: an array of dimension K x nvgrid x ntgrid for the kernel-smoothed baseline hazard function\lambda_{0k}, k = 1, \dots, K
whereK
is the number of strata. Ifntgrid
isNULL
(by default),Lambda0
is returned asNULL
.
References
Sun, Y., Gilbert, P. B., & McKeague, I. W. (2009). Proportional hazards models with continuous marks. Annals of statistics, 37(1), 394.
Yang, G., Sun, Y., Qi, L., & Gilbert, P. B. (2017). Estimation of stratified mark-specific proportional hazards models under two-phase sampling with application to HIV vaccine efficacy trials. Statistics in biosciences, 9, 259-283.
Examples
set.seed(20240410)
beta <- 2.1
gamma <- -1.3
n <- 200
tx <- rep(0:1, each = n / 2)
tm <- c(rexp(n / 2, 0.2), rexp(n / 2, 0.2 * exp(gamma)))
cens <- runif(n, 0, 15)
eventTime <- pmin(tm, cens, 3)
eventInd <- as.numeric(tm <= pmin(cens, 3))
alpha <- function(b){ log((1 - exp(-2)) * (b - 2) / (2 * (exp(b - 2) - 1))) }
mark0 <- log(1 - (1 - exp(-2)) * runif(n / 2)) / (-2)
mark1 <- log(1 + (beta - 2) * (1 - exp(-2)) * runif(n / 2) / (2 * exp(alpha(beta)))) /
(beta - 2)
mark <- ifelse(eventInd == 1, c(mark0, mark1), NA)
# the true TE(v) curve underlying the data-generating mechanism is:
# TE(v) = 1 - exp{alpha(beta) + beta * v + gamma}
# complete-case estimation discards rows with a missing mark
fit <- kernel_sievePH(eventTime, eventInd, mark, tx, tau = 3, tband = 0.5,
hband = 0.3, nvgrid = 20, nboot = 20)