Title: | Statistical Combination of Diagnostic Tests |
---|---|
Description: | A system for combining two diagnostic tests using various approaches that include statistical and machine-learning-based methodologies. These approaches are divided into four groups: linear combination methods, non-linear combination methods, mathematical operators, and machine learning algorithms. See the <https://biotools.erciyes.edu.tr/dtComb/> website for more information, documentation, and examples. |
Authors: | Serra Ilayda Yerlitas [aut, ctb], Serra Bersan Gengec [aut, ctb], Necla Kochan [aut, ctb], Gozde Erturk Zararsiz [aut, ctb], Selcuk Korkmaz [aut, ctb], Gokmen Zararsiz [aut, ctb, cre] |
Maintainer: | Gokmen Zararsiz <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.0.4 |
Built: | 2024-12-09 06:01:24 UTC |
Source: | https://github.com/gokmenzararsiz/dtcomb |
Includes machine learning models used for the mlComb function
data(allMethods)
data(allMethods)
A data frame with 113 rows and 2 variables:
Valid name for the function
Model name
data(allMethods) allMethods
data(allMethods) allMethods
dtComb
This function returns a data.frame of available classification
methods in dtComb
. These methods are imported from the caret package.
availableMethods()
availableMethods()
No return value
contains the method names and explanations of the
machine-learning models available for the dtComb package.
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
availableMethods()
availableMethods()
The dtComb package calculates combination scores of two biomarkers given under four main categories: linear combinations with the linComb function, non-linear combinations with the nonlinComb function, mathematical operators with the mathComb function, and machine learning algorithms with the mlComb function.
Maintainer: Gokmen Zararsiz [email protected] [contributor]
Authors:
Serra Ilayda Yerlitas [email protected] [contributor]
Serra Bersan Gengec [email protected] [contributor]
Necla Kochan [email protected] [contributor]
Gozde Erturk Zararsiz [email protected] [contributor]
Selcuk Korkmaz [email protected] [contributor]
Useful links:
A data set containing the results of diagnostic laparoscopy procedures for 225 patients.
data(exampleData1)
data(exampleData1)
A data frame with 225 rows and 3 variables:
Indicator if the procedure was needed, values needed and not_needed
Biomarker 1, D-Dimer protein level in blood, ng/mL
Biomarker 2, Logarithm of Leukocyte count in blood, per mcL
data(exampleData1) exampleData1$group <- factor(exampleData1$group) gcol <- c("#E69F00", "#56B4E9") plot(exampleData1$ddimer, exampleData1$log_leukocyte, col = gcol[as.numeric(exampleData1$group)] )
data(exampleData1) exampleData1$group <- factor(exampleData1$group) gcol <- c("#E69F00", "#56B4E9") plot(exampleData1$ddimer, exampleData1$log_leukocyte, col = gcol[as.numeric(exampleData1$group)] )
A data set containing the carriers of a rare genetic disorder for 120 samples.
data(exampleData2)
data(exampleData2)
A data frame with 120 rows and 5 variables:
Indicator if the person was carriers, values carriers and normals
Biomarker 1, 1. measurement blood sample
Biomarker 2, 2. measurement blood sample
Biomarker 3, 3. measurement blood sample
Biomarker 4, 4. measurement blood sample
data(exampleData2) exampleData2$Group <- factor(exampleData2$Group) gcol <- c("#E69F00", "#56B4E9") plot(exampleData2$m1, exampleData2$m2, col = gcol[as.numeric(exampleData2$Group)] )
data(exampleData2) exampleData2$Group <- factor(exampleData2$Group) gcol <- c("#E69F00", "#56B4E9") plot(exampleData2$m1, exampleData2$m2, col = gcol[as.numeric(exampleData2$Group)] )
A simulation data containing 250 diseased and 250 healthy individuals.
data(exampleData3)
data(exampleData3)
A data frame with 500 rows and 3 variables:
Indicator of one's condition, values healthy and diseased
1. biomarker
2. biomarker
data(exampleData3) exampleData3$status <- factor(exampleData3$status) gcol <- c("#E69F00", "#56B4E9") plot(exampleData3$marker1, exampleData3$marker2, col = gcol[as.numeric(exampleData3$status)] )
data(exampleData3) exampleData3$status <- factor(exampleData3$status) gcol <- c("#E69F00", "#56B4E9") plot(exampleData3$marker1, exampleData3$marker2, col = gcol[as.numeric(exampleData3$status)] )
The helper_minimax
function calculates the combination
coefficient and optimized value of given biomarkers for the minimax method.
helper_minimax(t, neg.set, pos.set, markers, status)
helper_minimax(t, neg.set, pos.set, markers, status)
t |
a |
neg.set |
a |
pos.set |
a |
markers |
a |
status |
a |
A numeric
Optimized value calculated with combination scores
using t
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) neg.set <- markers[status == levels(status)[1], ] pos.set <- markers[status == levels(status)[2], ] t <- 0.5 stat <- helper_minimax(t, neg.set = neg.set, pos.set = pos.set, markers = markers, status )
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) neg.set <- markers[status == levels(status)[1], ] pos.set <- markers[status == levels(status)[2], ] t <- 0.5 stat <- helper_minimax(t, neg.set = neg.set, pos.set = pos.set, markers = markers, status )
The helper_minmax
function estimates optimized value of
given biomarkers for the minmax method.
helper_minmax(lambda, neg.set, pos.set)
helper_minmax(lambda, neg.set, pos.set)
lambda |
a |
neg.set |
a |
pos.set |
a |
A numeric
value for the estimated optimized value
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) neg.set <- markers[status == levels(status)[1], ] pos.set <- markers[status == levels(status)[2], ] lambda <- 0.5 stat <- helper_minmax(lambda, neg.set = neg.set, pos.set = pos.set)
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) neg.set <- markers[status == levels(status)[1], ] pos.set <- markers[status == levels(status)[2], ] lambda <- 0.5 stat <- helper_minmax(lambda, neg.set = neg.set, pos.set = pos.set)
The helper_PCL
function estimates the optimized value of
given biomarkers for the PCL method.
helper_PCL(lambda, neg.set, pos.set)
helper_PCL(lambda, neg.set, pos.set)
lambda |
a |
neg.set |
a |
pos.set |
a |
A numeric
value for the estimated optimized value
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) neg.set <- markers[status == levels(status)[1], ] pos.set <- markers[status == levels(status)[2], ] lambda <- 0.5 stat <- helper_PCL(lambda, neg.set = neg.set, pos.set = pos.set)
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) neg.set <- markers[status == levels(status)[1], ] pos.set <- markers[status == levels(status)[2], ] lambda <- 0.5 stat <- helper_PCL(lambda, neg.set = neg.set, pos.set = pos.set)
The helper_PT
function estimates the optimized value of
given biomarkers for the PT method.
helper_PT(lambda, neg.set, pos.set)
helper_PT(lambda, neg.set, pos.set)
lambda |
a |
neg.set |
a |
pos.set |
a |
A numeric
value for the estimated optimized value
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) neg.set <- markers[status == levels(status)[1], ] pos.set <- markers[status == levels(status)[2], ] lambda <- 0.5 stat <- helper_PT(lambda, neg.set = neg.set, pos.set = pos.set)
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) neg.set <- markers[status == levels(status)[1], ] pos.set <- markers[status == levels(status)[2], ] lambda <- 0.5 stat <- helper_PT(lambda, neg.set = neg.set, pos.set = pos.set)
The helper_TS
function calculates the combination
coefficient and optimized value of given biomarkers for the TS method.
helper_TS(theta, markers, status)
helper_TS(theta, markers, status)
theta |
a |
markers |
a |
status |
a |
A numeric
Optimized value calculated with combination scores
using theta
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) t <- 0.5 stat <- helper_TS(theta = t, markers = markers, status = status)
# call data data(exampleData1) # define the function parameters markers <- cbind(exampleData1$ddimer, exampleData1$log_leukocyte) status <- factor(exampleData1$group, levels = c("not_needed", "needed")) t <- 0.5 stat <- helper_TS(theta = t, markers = markers, status = status)
The kappa.accuracy
calculates Cohen's kappa and accuracy.
## S3 method for class 'accuracy' kappa(DiagStatCombined)
## S3 method for class 'accuracy' kappa(DiagStatCombined)
DiagStatCombined |
a |
A list
of Cohen's kappa and accuracy values
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
The linComb
function calculates the combination
scores of two diagnostic tests selected among several linear combination
methods and standardization options.
linComb( markers = NULL, status = NULL, event = NULL, method = c("scoring", "SL", "logistic", "minmax", "PT", "PCL", "minimax", "TS"), resample = c("none", "cv", "repeatedcv", "boot"), nfolds = 5, nrepeats = 3, niters = 10, standardize = c("none", "range", "zScore", "tScore", "mean", "deviance"), ndigits = 0, show.plot = TRUE, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.result = FALSE, ... )
linComb( markers = NULL, status = NULL, event = NULL, method = c("scoring", "SL", "logistic", "minmax", "PT", "PCL", "minimax", "TS"), resample = c("none", "cv", "repeatedcv", "boot"), nfolds = 5, nrepeats = 3, niters = 10, standardize = c("none", "range", "zScore", "tScore", "mean", "deviance"), ndigits = 0, show.plot = TRUE, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.result = FALSE, ... )
markers |
a |
status |
a |
event |
a |
method |
a The available methods are:
|
resample |
a
|
nfolds |
a |
nrepeats |
a |
niters |
a |
standardize |
a
|
ndigits |
a |
show.plot |
a |
direction |
a |
conf.level |
a |
cutoff.method |
a |
show.result |
a |
... |
further arguments. Currently has no effect on the results. |
A list of numeric
linear combination scores calculated
according to the given method and standardization option.
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" score1 <- linComb( markers = markers, status = status, event = event, method = "logistic", resample = "none", show.plot = TRUE, standardize = "none", direction = "<", cutoff.method = "Youden" ) # call data data(exampleData2) # define the function parameters markers <- exampleData2[, -c(1:3, 6:7)] status <- factor(exampleData2$Group, levels = c("normals", "carriers")) event <- "carriers" score2 <- linComb( markers = markers, status = status, event = event, method = "PT", resample = "none", standardize = "none", direction = "<", cutoff.method = "Youden", show.result = "TRUE" ) score3 <- linComb( markers = markers, status = status, event = event, method = "minmax", resample = "none", direction = "<", cutoff.method = "Youden" )
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" score1 <- linComb( markers = markers, status = status, event = event, method = "logistic", resample = "none", show.plot = TRUE, standardize = "none", direction = "<", cutoff.method = "Youden" ) # call data data(exampleData2) # define the function parameters markers <- exampleData2[, -c(1:3, 6:7)] status <- factor(exampleData2$Group, levels = c("normals", "carriers")) event <- "carriers" score2 <- linComb( markers = markers, status = status, event = event, method = "PT", resample = "none", standardize = "none", direction = "<", cutoff.method = "Youden", show.result = "TRUE" ) score3 <- linComb( markers = markers, status = status, event = event, method = "minmax", resample = "none", direction = "<", cutoff.method = "Youden" )
The mathComb
function returns the combination results of
two diagnostic tests with different mathematical operators, distance
measures, standardization, and transform options.
mathComb( markers = NULL, status = NULL, event = NULL, method = c("add", "multiply", "divide", "subtract", "distance", "baseinexp", "expinbase"), distance = c("euclidean", "manhattan", "chebyshev", "kulczynski_d", "lorentzian", "avg", "taneja", "kumar-johnson"), standardize = c("none", "range", "zScore", "tScore", "mean", "deviance"), transform = c("none", "log", "exp", "sin", "cos"), show.plot = TRUE, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.result = FALSE, ... )
mathComb( markers = NULL, status = NULL, event = NULL, method = c("add", "multiply", "divide", "subtract", "distance", "baseinexp", "expinbase"), distance = c("euclidean", "manhattan", "chebyshev", "kulczynski_d", "lorentzian", "avg", "taneja", "kumar-johnson"), standardize = c("none", "range", "zScore", "tScore", "mean", "deviance"), transform = c("none", "log", "exp", "sin", "cos"), show.plot = TRUE, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.result = FALSE, ... )
markers |
a |
status |
a |
event |
a |
method |
a
|
distance |
a
|
standardize |
a
|
transform |
a
|
show.plot |
a |
direction |
a |
conf.level |
a |
cutoff.method |
a |
show.result |
a |
... |
further arguments. Currently has no effect on the results. |
A list of numeric
mathematical combination scores calculated
according to the given method and standardization option
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
data(exampleData1) markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" direction <- "<" cutoff.method <- "Youden" score1 <- mathComb( markers = markers, status = status, event = event, method = "distance", distance = "avg", direction = direction, show.plot = FALSE, standardize = "none", cutoff.method = cutoff.method ) score2 <- mathComb( markers = markers, status = status, event = event, method = "baseinexp", transform = "exp", direction = direction, cutoff.method = cutoff.method ) score3 <- mathComb( markers = markers, status = status, event = event, method = "subtract", direction = "auto", cutoff.method = "MinValueSp", transform = "sin" )
data(exampleData1) markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" direction <- "<" cutoff.method <- "Youden" score1 <- mathComb( markers = markers, status = status, event = event, method = "distance", distance = "avg", direction = direction, show.plot = FALSE, standardize = "none", cutoff.method = cutoff.method ) score2 <- mathComb( markers = markers, status = status, event = event, method = "baseinexp", transform = "exp", direction = direction, cutoff.method = cutoff.method ) score3 <- mathComb( markers = markers, status = status, event = event, method = "subtract", direction = "auto", cutoff.method = "MinValueSp", transform = "sin" )
The mlComb
function calculates the combination
scores of two diagnostic tests selected among several Machine Learning
Algorithms
mlComb( markers = NULL, status = NULL, event = NULL, method = NULL, resample = NULL, niters = 5, nfolds = 5, nrepeats = 3, preProcess = NULL, show.plot = TRUE, B = 25, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.result = FALSE, ... )
mlComb( markers = NULL, status = NULL, event = NULL, method = NULL, resample = NULL, niters = 5, nfolds = 5, nrepeats = 3, preProcess = NULL, show.plot = TRUE, B = 25, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.result = FALSE, ... )
markers |
a |
status |
a |
event |
a |
method |
a IMPORTANT: See https://topepo.github.io/caret/available-models.html for further information about the methods used in this function. |
resample |
a |
niters |
a |
nfolds |
a |
nrepeats |
a |
preProcess |
a |
show.plot |
a |
B |
a |
direction |
a |
conf.level |
a |
cutoff.method |
a |
show.result |
a |
... |
optional arguments passed to selected classifiers. |
A list
of AUC values, diagnostic statistics,
coordinates of the ROC curve for the combination score obtained using
Machine Learning Algorithms as well as the given biomarkers individually, a
comparison table for the AUC values of individual biomarkers and combination
score obtained and the fitted model.
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" model <- mlComb( markers = markers, status = status, event = event, method = "knn", resample = "repeatedcv", nfolds = 10, nrepeats = 5, preProcess = c("center", "scale"), direction = "<", cutoff.method = "Youden" )
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" model <- mlComb( markers = markers, status = status, event = event, method = "knn", resample = "repeatedcv", nfolds = 10, nrepeats = 5, preProcess = c("center", "scale"), direction = "<", cutoff.method = "Youden" )
The nonlinComb
function calculates the combination
scores of two diagnostic tests selected among several non-linear combination
methods and standardization options
nonlinComb( markers = NULL, status = NULL, event = NULL, method = c("polyreg", "ridgereg", "lassoreg", "elasticreg", "splines", "sgam", "nsgam"), degree1 = 3, degree2 = 3, df1 = 4, df2 = 4, resample = c("none", "cv", "repeatedcv", "boot"), nfolds = 5, nrepeats = 3, niters = 10, standardize = c("none", "range", "zScore", "tScore", "mean", "deviance"), include.interact = FALSE, alpha = 0.5, show.plot = TRUE, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.result = FALSE, ... )
nonlinComb( markers = NULL, status = NULL, event = NULL, method = c("polyreg", "ridgereg", "lassoreg", "elasticreg", "splines", "sgam", "nsgam"), degree1 = 3, degree2 = 3, df1 = 4, df2 = 4, resample = c("none", "cv", "repeatedcv", "boot"), nfolds = 5, nrepeats = 3, niters = 10, standardize = c("none", "range", "zScore", "tScore", "mean", "deviance"), include.interact = FALSE, alpha = 0.5, show.plot = TRUE, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.result = FALSE, ... )
markers |
a |
status |
a |
event |
a |
method |
a
|
degree1 |
a |
degree2 |
a |
df1 |
a |
df2 |
a |
resample |
a
|
nfolds |
a |
nrepeats |
a |
niters |
a |
standardize |
a
|
include.interact |
a |
alpha |
a |
show.plot |
a |
direction |
a |
conf.level |
a |
cutoff.method |
a |
show.result |
a |
... |
further arguments. Currently has no effect on the results. |
A list of numeric
nonlinear combination scores calculated
according to the given method and standardization option
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
data("exampleData1") data <- exampleData1 markers <- data[, -1] status <- factor(data$group, levels = c("not_needed", "needed")) event <- "needed" cutoff.method <- "Youden" score1 <- nonlinComb( markers = markers, status = status, event = event, method = "lassoreg", include.interact = FALSE, resample = "boot", niters = 5, degree1 = 4, degree2 = 4, cutoff.method = cutoff.method, direction = "<" ) score2 <- nonlinComb( markers = markers, status = status, event = event, method = "splines", resample = "none", cutoff.method = cutoff.method, standardize = "tScore", direction = "<" ) score3 <- nonlinComb( markers = markers, status = status, event = event, method = "lassoreg", resample = "repeatedcv", include.interact = TRUE, cutoff.method = "ROC01", standardize = "zScore", direction = "auto" )
data("exampleData1") data <- exampleData1 markers <- data[, -1] status <- factor(data$group, levels = c("not_needed", "needed")) event <- "needed" cutoff.method <- "Youden" score1 <- nonlinComb( markers = markers, status = status, event = event, method = "lassoreg", include.interact = FALSE, resample = "boot", niters = 5, degree1 = 4, degree2 = 4, cutoff.method = cutoff.method, direction = "<" ) score2 <- nonlinComb( markers = markers, status = status, event = event, method = "splines", resample = "none", cutoff.method = cutoff.method, standardize = "tScore", direction = "<" ) score3 <- nonlinComb( markers = markers, status = status, event = event, method = "lassoreg", resample = "repeatedcv", include.interact = TRUE, cutoff.method = "ROC01", standardize = "zScore", direction = "auto" )
The plotComb
a function that generates plots from the
training model. The function takes argument model. The outputs of the
function are three different plots generated from the combination scores.
plotComb(model, status)
plotComb(model, status)
model |
a |
status |
a |
A data.frame
plots
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" score1 <- linComb( markers = markers, status = status, event = event, method = "scoring", resample = "none", standardize = "none", direction = "<", cutoff.method = "Youden" ) plotComb(score1, status) score2 <- nonlinComb( markers = markers, status = status, event = event, method = "nsgam", resample = "cv", include.interact = FALSE, direction = "<", standardize = "zScore", cutoff.method = "Youden" ) plot.score2 <- plotComb(score2, status) score3 <- mathComb( markers = markers, status = status, event = event, method = "distance", distance = "euclidean", direction = "auto", standardize = "tScore", cutoff.method = "Youden" ) plot.score3 <- plotComb(score3, status)
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" score1 <- linComb( markers = markers, status = status, event = event, method = "scoring", resample = "none", standardize = "none", direction = "<", cutoff.method = "Youden" ) plotComb(score1, status) score2 <- nonlinComb( markers = markers, status = status, event = event, method = "nsgam", resample = "cv", include.interact = FALSE, direction = "<", standardize = "zScore", cutoff.method = "Youden" ) plot.score2 <- plotComb(score2, status) score3 <- mathComb( markers = markers, status = status, event = event, method = "distance", distance = "euclidean", direction = "auto", standardize = "tScore", cutoff.method = "Youden" ) plot.score3 <- plotComb(score3, status)
The predict.dtComb
is a function that generates predictions
for a new dataset of biomarkers using the parameters from the fitted model.
The function takes arguments newdata and model. The function's output is the
combination scores and labels of object type.
## S3 method for class 'dtComb' predict(object, newdata = NULL, ...)
## S3 method for class 'dtComb' predict(object, newdata = NULL, ...)
object |
a |
newdata |
a |
... |
further arguments. Currently has no effect on the results. |
A data.frame
predicted combination scores (or probabilities)
and labels
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" score1 <- linComb( markers = markers, status = status, event = event, method = "logistic", resample = "none", standardize = "none", direction = "<", cutoff.method = "Youden" ) comb.score1 <- predict(score1, markers) score2 <- nonlinComb( markers = markers, status = status, event = "needed", include.interact = TRUE, method = "polyreg", resample = "repeatedcv", nfolds = 5, nrepeats = 10, cutoff.method = "Youden", direction = "auto" ) comb.score2 <- predict(score2, markers) score3 <- mathComb( markers = markers, status = status, event = event, method = "distance", distance = "euclidean", direction = "auto", standardize = "tScore", cutoff.method = "Youden" ) comb.score3 <- predict(score3, markers)
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] status <- factor(exampleData1$group, levels = c("not_needed", "needed")) event <- "needed" score1 <- linComb( markers = markers, status = status, event = event, method = "logistic", resample = "none", standardize = "none", direction = "<", cutoff.method = "Youden" ) comb.score1 <- predict(score1, markers) score2 <- nonlinComb( markers = markers, status = status, event = "needed", include.interact = TRUE, method = "polyreg", resample = "repeatedcv", nfolds = 5, nrepeats = 10, cutoff.method = "Youden", direction = "auto" ) comb.score2 <- predict(score2, markers) score3 <- mathComb( markers = markers, status = status, event = event, method = "distance", distance = "euclidean", direction = "auto", standardize = "tScore", cutoff.method = "Youden" ) comb.score3 <- predict(score3, markers)
The print_train
function prints the summary statistics of
the fitted model
print_train(print_model)
print_train(print_model)
print_model |
a |
No return value
writes a summary of the results to the console.
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
The rocsum
function returns the ROC curves with
coordinates, Area Under the Curves of markers and combination score, Area Under
the Curve comparison of markers and combination score, Confusion matrices for both
markers and combination score with the cutoff values derived from the ROC Curves.
rocsum( markers = NULL, comb.score = NULL, status = NULL, event = NULL, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.plot = show.plot )
rocsum( markers = NULL, comb.score = NULL, status = NULL, event = NULL, direction = c("auto", "<", ">"), conf.level = 0.95, cutoff.method = c("CB", "MCT", "MinValueSp", "MinValueSe", "ValueSp", "ValueSe", "MinValueSpSe", "MaxSp", "MaxSe", "MaxSpSe", "MaxProdSpSe", "ROC01", "SpEqualSe", "Youden", "MaxEfficiency", "Minimax", "MaxDOR", "MaxKappa", "MinValueNPV", "MinValuePPV", "ValueNPV", "ValuePPV", "MinValueNPVPPV", "PROC01", "NPVEqualPPV", "MaxNPVPPV", "MaxSumNPVPPV", "MaxProdNPVPPV", "ValueDLR.Negative", "ValueDLR.Positive", "MinPvalue", "ObservedPrev", "MeanPrev", "PrevalenceMatching"), show.plot = show.plot )
markers |
a |
comb.score |
a matrix of |
status |
a |
event |
a |
direction |
a |
conf.level |
a |
cutoff.method |
a |
show.plot |
a |
A list of numeric
ROC Curves, AUC statistics and Confusion
matrices.
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
The std.test
Standardization parameters will be taken
from the fitted training model and applied to the new data set.
std.test(newdata, model)
std.test(newdata, model)
newdata |
a |
model |
a |
A numeric
dataframe of standardized biomarkers
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
The std.train
Standardization (range, zScore etc.) can be
estimated from the training data and applied to any dataset with the same
variables.
std.train(data, standardize = NULL)
std.train(data, standardize = NULL)
data |
a |
standardize |
a
|
A numeric
data.frame of standardized biomarkers
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] markers2 <- std.train(markers, "deviance")
# call data data(exampleData1) # define the function parameters markers <- exampleData1[, -1] markers2 <- std.train(markers, "deviance")
The transform_math
function applies a user preference
transformation from log
exp
sin
cos
transformations
for biomarkers.
transform_math(markers, transform)
transform_math(markers, transform)
markers |
a |
transform |
a |
A numeric
dataframe of standardized biomarkers
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
data(exampleData1) markes <- exampleData1[, -1] transform_math(markes, transform = "log")
data(exampleData1) markes <- exampleData1[, -1] transform_math(markes, transform = "log")