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 P\{Y(z)=1|S(1)=s_1\}
, z=0,1
, on a grid of s_1
values following the estimation method of Juraska, Huang, and Gilbert (2018), where Z
is the
treatment group indicator (Z=1
, treatment; Z=0
, placebo), S(z)
is a continuous or ordered categorical univariate biomarker under assignment to Z=z
measured at fixed time t_0
after randomization, and Y
is a binary clinical endpoint (Y=1
, disease; Y=0
, no disease) measured after t_0
. The
estimator employs the generalized product kernel density/probability estimation method of Hall, Racine, and Li (2004) implemented in the np
package. The risks
P\{Y(z)=1|S(z)=s_1,X=x\}
, z=0,1
, where X
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 ofS(1)
values at which the conditional clinical endpoint risk is estimated in the componentsplaRiskCurve
andtxRiskCurve
-
plaRiskCurve
: a numeric vector of estimates ofP\{Y(0)=1|S(1)=s_1\}
fors_1
inpsGrid
-
txRiskCurve
: a numeric vector of estimates ofP\{Y(1)=1|S(1)=s_1\}
fors_1
inpsGrid
-
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 ofS(1)
given 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 ofS(0)
given any specified baseline covariates or the marginal density ofS(0)
if no baseline covariates are specified informula
-
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="./")