Type: | Package |
Title: | Receiver Operating Characteristic Based Signature Identification |
Version: | 0.1.0 |
Description: | Optimal linear combination predictive signatures for maximizing the area between two Receiver Operating Characteristic (ROC) curves (treatment vs. control). |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
Encoding: | UTF-8 |
RoxygenNote: | 7.1.1 |
Imports: | glmnet, MASS |
NeedsCompilation: | no |
Packaged: | 2022-08-23 22:41:30 UTC; huangxx13 |
Author: | Xin Huang [aut, cre, cph] |
Maintainer: | Xin Huang <xin.huang@abbvie.com> |
Repository: | CRAN |
Date/Publication: | 2022-08-24 09:12:36 UTC |
AUC
Description
Empirical AUC estimate
Usage
AUC(outcome, predict)
Arguments
outcome |
binary outcome (1: desired outcome; 0: otherwise) |
predict |
prediction score |
Details
Function for AUC when input is X and Y.
Value
a numeric value of empirical estimation of area under the ROC curves
Examples
# no run
C.index
Description
Empirical c-index estimate
Usage
C.index(yvar, score, censorvar, data)
Arguments
yvar |
column name for observed time |
score |
column name for marker value |
censorvar |
column name for censor (1 is event, 0 is censored) |
data |
input data matrix |
Details
Function for c-index when input is X and Y.
Value
a numeric value of empirical estimation of c-index
Examples
# no run
HIC
Description
function for HIC calculation
Usage
HIC(beta, Z, index, w = 1)
Arguments
beta |
estimates of coefficient beta |
Z |
matrix prepared for ROCSI |
index |
m*n by 2 matrix for the subindex for the pair difference in Z |
w |
a vector of weights Z (can be used for inverse probability weighting for missing data, default is 1) |
Details
Function for HIC calculation
Value
A numeric value with corresponding HIC
Examples
# no run
MClogit
Description
function for modified covariate methods based on glmnet
Usage
MClogit(
dataset,
yvar,
xvars,
trtvar,
cvar = NULL,
nfolds = 5,
type = "binary",
newx = NULL,
bestsub = "lambda.1se",
type.measure = "auc"
)
Arguments
dataset |
data matrix for training dataset |
yvar |
column name for outcome |
xvars |
a string vector of column names for input markers |
trtvar |
column name for treatment (the column should contain binary code with 1 being treatment and 0 being control) |
cvar |
column name for censor (the column should contain binary code with 1 being event and 0 being censored) |
nfolds |
n fold CV used for cv.glmnet |
type |
outcome type ("binary" for binary outcome and "survival" for time-to-event outcome) |
newx |
data matrix for testing dataset X |
bestsub |
criteria for best lambda, used by glmnet |
type.measure |
type of measure used by glmnet |
Details
function for ROCSI
Value
A list with ROCSI output
- x.logit
final beta estimated from MClogit
- predScore
a data.frame of testing data and its predictive signature scores (based on beta.aABC) for each subjects
- abc
ABC in testing dataset based on optimal beta
- fit.cv
the fitted glmnet object
Examples
n <- 100
k <- 5
prevalence <- sqrt(0.5)
rho<-0.2
sig2 <- 2
rhos.bt.real <- c(0, rep(0.1, (k-3)))*sig2
y.sig2 <- 1
yvar="y.binary"
xvars=paste("x", c(1:k), sep="")
trtvar="treatment"
prog.eff <- 0.5
effect.size <- 1
a.constent <- effect.size/(2*(1-prevalence))
ObsData <- data.gen(n=n, k=k, prevalence=prevalence, prog.eff=prog.eff,
sig2=sig2, y.sig2=y.sig2, rho=rho,
rhos.bt.real=rhos.bt.real, a.constent=a.constent)
TestData <- data.gen(n=n, k=k, prevalence=prevalence, prog.eff=prog.eff,
sig2=sig2, y.sig2=y.sig2, rho=rho,
rhos.bt.real=rhos.bt.real, a.constent=a.constent)
bst.mod <- MClogit(dataset=ObsData$data, yvar=yvar, xvars=xvars,
trtvar=trtvar, nfolds = 5, newx=TestData$data,
type="binary", bestsub="lambda.1se")
bst.mod$abc
bst.mod$x.logit[-1,1]
ROCSI
Description
function for ROCSI
Usage
ROCSI(
Dtrain,
Dtest = NULL,
yvar,
xvars,
trtvar,
cvar = NULL,
nfolds = 5,
type = "binary"
)
Arguments
Dtrain |
data matrix for training dataset |
Dtest |
optional data matrix for testing dataset |
yvar |
column name for outcome |
xvars |
a string vector of column names for input markers |
trtvar |
column name for treatment (the column should contain binary code with 1 being treatment and 0 being control) |
cvar |
column name for censor (the column should contain binary code with 1 being event and 0 being censored) |
nfolds |
n fold CV used for cv.glmnet |
type |
outcome type ("binary" for binary outcome and "survival" for time-to-event outcome) |
Details
function for ROCSI
Value
A list with ROCSI output
- beta.aABC
final beta estimated from ROCSI based on
ABC^{(acv)}
- beta.1se
final beta estimated from lambda.1se based on nfold CV
- lambda.aABC
optimal lambda selected by optimizing
ABC^{(acv)}
- fit.cv
fitted cv.glmnet model
- log
log matrix of all lambdas and ABCs
- abc.test
ABC in testing dataset based on optimal beta
- abc.test1se
ABC in testing dataset based on 1se beta
- predScore
a data.frame of testing data and its predictive signature scores (based on beta.aABC) for each subjects
- predScore.1se
a data.frame of testing data and its predictive signature scores (based on beta.1se) for each subjects
Examples
n <- 100
k <- 5
prevalence <- sqrt(0.5)
rho<-0.2
sig2 <- 2
rhos.bt.real <- c(0, rep(0.1, (k-3)))*sig2
y.sig2 <- 1
yvar="y.binary"
xvars=paste("x", c(1:k), sep="")
trtvar="treatment"
prog.eff <- 0.5
effect.size <- 1
a.constent <- effect.size/(2*(1-prevalence))
ObsData <- data.gen(n=n, k=k, prevalence=prevalence, prog.eff=prog.eff,
sig2=sig2, y.sig2=y.sig2, rho=rho,
rhos.bt.real=rhos.bt.real, a.constent=a.constent)
TestData <- data.gen(n=n, k=k, prevalence=prevalence, prog.eff=prog.eff,
sig2=sig2, y.sig2=y.sig2, rho=rho,
rhos.bt.real=rhos.bt.real, a.constent=a.constent)
bst.aabc <- ROCSI(Dtrain=ObsData$data, Dtest = TestData$data, yvar=yvar,
xvars=xvars, trtvar=trtvar, cvar=NULL, nfolds=5, type="binary")
bst.aabc$beta.aABC
bst.aabc$log
bst.aabc$abc.test
bst.aabc$beta.1se
bst.aabc$abc.test1se
beta2theta
Description
Function to translate beta into theta, the n-sphere constrain
Usage
beta2theta(beta)
Arguments
beta |
estimates of coefficient beta |
Details
Function to translate beta into theta, the n-sphere constrain
Value
a numeric vector for theta (dimension-1)
Examples
# no run
cvfolds0
Description
internal function for generating CV fold index
Usage
cvfolds0(X, Y, idx, nfolds = 5)
Arguments
X |
marker matrix for non-responders |
Y |
marker matrix for responders |
idx |
m*n by 2 matrix for row index of marker matrix, first column is row index in X; second column is for Y |
nfolds |
the cross-validation folds |
Details
Function for generate CV fold index
Value
a vector containing CV fold index for each row in Z
Examples
# no run
data.gen
Description
Function for simulated data generation
Usage
data.gen(
n,
k,
prevalence = sqrt(0.5),
prog.eff = 1,
sig2,
y.sig2,
rho,
rhos.bt.real,
a.constent
)
Arguments
n |
Total sample size |
k |
Number of markers |
prevalence |
prevalence of predictive biomarkers with values above the cutoff |
prog.eff |
effect size |
sig2 |
standard deviation of each marker |
y.sig2 |
Standard Deviation of the error term in the linear component |
rho |
rho*sig2 is the entries for covariance matrix between pairs of different k markers |
rhos.bt.real |
correlation between each prognostic and predictive markers |
a.constent |
a constant is set such that there is no overall treatment effect |
Details
Function for simulated data generation
Value
A list of simulated clinical trial data with heterogeneous prognostic and predictive biomarkers
Examples
n <- 500
k <- 10
prevalence <- sqrt(0.5)
rho<-0.2
sig2 <- 2
rhos.bt.real <- c(0, rep(0.1, (k-3)))*sig2
y.sig2 <- 1
prog.eff <- 0.5
effect.size <- 1
a.constent <- effect.size/(2*(1-prevalence))
ObsData <- data.gen(n=n, k=k, prevalence=prevalence, prog.eff=prog.eff,
sig2=sig2, y.sig2=y.sig2, rho=rho,
rhos.bt.real=rhos.bt.real, a.constent=a.constent)
grad.sub
Description
Internal function of grad_square in the GCV
Usage
grad.sub(z, beta)
Arguments
z |
(m x n) x p data matrix as prepared for ROCSI |
beta |
estimates of coefficient beta |
Details
Internal function of grad_square in the GCV
Value
grad_square in the GCV
Examples
# no run
gradsqr
Description
Internal function for HIC calculation
Usage
gradsqr(beta, Z0, index, w = 1)
Arguments
beta |
estimates of coefficient beta |
Z0 |
(m x n) x p Z matrix as prepared for ROCSI |
index |
m*n by 2 matrix for the subindex for the pair difference in Z |
w |
a vector of weights Z (can be used for inverse probability weighting for missing data, default is 1) |
Details
Internal function for HIC calculation
Value
gradient square for the GCV.
Examples
# no run
hessAUC
Description
function for Hessian matrix of AUC
Usage
hessAUC(beta, Z, w = 1)
Arguments
beta |
estimates of coefficient beta |
Z |
(m x n) x p data matrix as prepared for ROCSI |
w |
a vector of weights Z (can be used for inverse probability weighting for missing data, default is 1) |
Details
function for Hessian matrix of AUC
Value
Hessian matrix of AUC.
Examples
# no run
hessAUC.sub
Description
Internal function for hessAUC
Usage
hessAUC.sub(z, beta)
Arguments
z |
(m x n) x p data matrix as prepared for ROCSI |
beta |
estimates of coefficient beta |
Details
Internal function for hessAUC
Value
Hessian matrix components.
Examples
# no run
pair.diff
Description
internal function for generating Z matrix (binary endpoint)
Usage
pair.diff(X, Y, A)
Arguments
X |
marker matrix for non-responders |
Y |
marker matrix for responders |
A |
Treatment arm indicator (1 is treatment, 0 is control) |
Details
Function for generate Z matrix for binary endpoint
Value
A list of prepared data input for ROCSI
Examples
# no run
pair.diff.surv
Description
internal function for generating Z matrix (time-to-event endpoint)
Usage
pair.diff.surv(X, Y, A, C)
Arguments
X |
marker matrix |
Y |
a vector for observed time |
A |
a vector for Treatment arm indicator (1 is treatment, 0 is control) |
C |
a vector for censor (1 is event, 0 is censored) |
Details
Function for generate Z matrix for time-to-event endpoint
Value
A list of prepared data input for ROCSI
Examples
# no run
theta2beta
Description
Function to translate theta into beta
Usage
theta2beta(theta)
Arguments
theta |
n-sphere coordination |
Details
Function to translate beta into theta, the n-sphere constrain
Value
a numeric vector for beta (dimension+1)
Examples
# no run