testEquality {pssmooth} | R Documentation |
Computes a two-sided p-value either from the test of {H_0^3: mCEP_1(s_1)=mCEP_2(s_1)
for all s_1
in limS1
}, where mCEP_1
and mCEP_2
are
each associated with either a different biomarker (measured in the same units) or a different endpoint or both, or from the test of {H_0^4: mCEP(s_1|X=0)=
mCEP(s_1|X=1)
for all s_1
in limS1
}, where X
is a baseline dichotomous phase 1 covariate of interest, each against a general alternative
hypothesis. The testing procedures are described in Juraska, Huang, and Gilbert (2018) and are based on the simultaneous estimation method of Roy and Bose (1953).
testEquality(
object1,
object2,
boot1,
boot2,
contrast = c("te", "rr", "logrr", "rd"),
null = c("H03", "H04"),
limS1 = NULL
)
object1 |
an object returned by |
object2 |
an object returned by |
boot1 |
an object returned by |
boot2 |
an object returned by |
contrast |
a character string specifying the mCEP curve. It must be one of |
null |
a character string specifying the null hypothesis to be tested; one of |
limS1 |
a numeric vector of length 2 specifying an interval that is a subset of the support of |
A numeric value representing the two-sided p-value from the test of either H_0^3
or H_0^4
.
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.
Roy, S. N. and Bose, R. C. (1953), Simultaneous condence interval estimation, The Annals of Mathematical Statistics, 24, 513-536.
riskCurve
, bootRiskCurve
and testConstancy
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)
out0 <- riskCurve(formula=Y ~ S, bsm="Sb", tx="Z", data=data[data$X==0,], psGrid=grid)
out1 <- riskCurve(formula=Y ~ S, bsm="Sb", tx="Z", data=data[data$X==1,], psGrid=grid)
boot0 <- bootRiskCurve(formula=Y ~ S, bsm="Sb", tx="Z", data=data[data$X==0,],
psGrid=grid, iter=2, seed=10)
boot1 <- bootRiskCurve(formula=Y ~ S, bsm="Sb", tx="Z", data=data[data$X==1,],
psGrid=grid, iter=2, seed=15)
testEquality(out0, out1, boot0, boot1, contrast="te", null="H04")