riskCurve {pssmooth} | R Documentation |
Estimation of Conditional Clinical Endpoint Risk under Placebo and Treatment Given Biomarker Response to Treatment in a Baseline Surrogate Measure Three-Phase Sampling Design
Description
Estimates ,
, on a grid of
values following the estimation method of Juraska, Huang, and Gilbert (2018), where
is the
treatment group indicator (
, treatment;
, placebo),
is a continuous or ordered categorical univariate biomarker under assignment to
measured at fixed time
after randomization, and
is a binary clinical endpoint (
, disease;
, no disease) measured after
. The
estimator employs the generalized product kernel density/probability estimation method of Hall, Racine, and Li (2004) implemented in the
np
package. The risks
,
, where
is a vector of discrete baseline covariates, are estimated by fitting inverse probability-weighted logistic regression
models using the
osDesign
package.
Usage
riskCurve(
formula,
bsm,
tx,
data,
pstype = c("continuous", "ordered"),
bsmtype = c("continuous", "ordered"),
bwtype = c("fixed", "generalized_nn", "adaptive_nn"),
hinge = FALSE,
weights = NULL,
psGrid = NULL,
saveFile = NULL,
saveDir = NULL
)
Arguments
formula |
a formula object with the binary clinical endpoint on the left of the |
bsm |
a character string specifying the variable name in |
tx |
a character string specifying the variable name in |
data |
a data frame with one row per randomized participant endpoint-free at |
pstype |
a character string specifying whether the biomarker response shall be treated as a |
bsmtype |
a character string specifying whether the baseline surrogate measure shall be treated as a |
bwtype |
a character string specifying the bandwidth type for continuous variables in the kernel density estimation. The options are |
hinge |
a logical value ( |
weights |
either a numeric vector of weights or a character string specifying the variable name in |
psGrid |
a numeric vector of |
saveFile |
a character string specifying the name of an |
saveDir |
a character string specifying a path for the output directory. If |
Value
If saveFile
and saveDir
are both specified, the output list (named oList
) is saved as an .RData
file; otherwise it is returned only.
The output object (of class riskCurve
) is a list with the following components:
-
psGrid
: a numeric vector ofvalues at which the conditional clinical endpoint risk is estimated in the components
plaRiskCurve
andtxRiskCurve
-
plaRiskCurve
: a numeric vector of estimates offor
in
psGrid
-
txRiskCurve
: a numeric vector of estimates offor
in
psGrid
-
fOptBandwidths
: aconbandwidth
object returned by the call of the functionnpcdensbw
containing the optimal bandwidths, selected by likelihood cross-validation, in the kernel estimation of the conditional density ofgiven the baseline surrogate measure and any other specified baseline covariates
-
gOptBandwidths
: aconbandwidth
object returned by the call of the functionnpcdensbw
ornpudensbw
containing the optimal bandwidths, selected by likelihood cross-validation, in the kernel estimation of the conditional density ofgiven any specified baseline covariates or the marginal density of
if no baseline covariates are specified in
formula
-
cpointP
: ifhinge=TRUE
, the estimate of the hinge point in the placebo group -
cpointT
: ifhinge=TRUE
, the estimate of the hinge point in the treatment group
References
Fong, Y., Huang, Y., Gilbert, P. B., and Permar, S. R. (2017), chngpt: threshold regression model estimation and inference, BMC Bioinformatics, 18.
Hall, P., Racine, J., and Li, Q. (2004), Cross-validation and the estimation of conditional probability densities, JASA 99(468), 1015-1026.
Juraska, M., Huang, Y., and Gilbert, P. B. (2020), Inference on treatment effect modification by biomarker response in a three-phase sampling design, Biostatistics, 21(3): 545-560, https://doi.org/10.1093/biostatistics/kxy074.
See Also
bootRiskCurve
, summary.riskCurve
and plotMCEPcurve
Examples
n <- 500
Z <- rep(0:1, each=n/2)
S <- MASS::mvrnorm(n, mu=c(2,2,3), Sigma=matrix(c(1,0.9,0.7,0.9,1,0.7,0.7,0.7,1), nrow=3))
p <- pnorm(drop(cbind(1,Z,(1-Z)*S[,2],Z*S[,3]) %*% c(-1.2,0.2,-0.02,-0.2)))
Y <- sapply(p, function(risk){ rbinom(1,1,risk) })
X <- rbinom(n,1,0.5)
# delete S(1) in placebo recipients
S[Z==0,3] <- NA
# delete S(0) in treatment recipients
S[Z==1,2] <- NA
# generate the indicator of being sampled into the phase 2 subset
phase2 <- rbinom(n,1,0.4)
# delete Sb, S(0) and S(1) in controls not included in the phase 2 subset
S[Y==0 & phase2==0,] <- c(NA,NA,NA)
# delete Sb in cases not included in the phase 2 subset
S[Y==1 & phase2==0,1] <- NA
data <- data.frame(X,Z,S[,1],ifelse(Z==0,S[,2],S[,3]),Y)
colnames(data) <- c("X","Z","Sb","S","Y")
qS <- quantile(data$S, probs=c(0.05,0.95), na.rm=TRUE)
grid <- seq(qS[1], qS[2], length.out=3)
out <- riskCurve(formula=Y ~ S + factor(X), bsm="Sb", tx="Z", data=data, psGrid=grid)
# alternatively, to save the .RData output file (no '<-' needed):
riskCurve(formula=Y ~ S + factor(X), bsm="Sb", tx="Z", data=data, saveFile="out.RData",
saveDir="./")