| 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.7 |
| Built: | 2026-05-14 07:34:30 UTC |
| Source: | https://github.com/gokmenzararsiz/dtcomb |
Machine learning model table for mlComb() 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) allMethodsdata(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 provides tools to calculate combination scores of two biomarkers, categorized into four main types:
linComb: Linear combinations,
nonlinComb: Non-linear combinations,
mathComb: Mathematical operator-based combinations,
mlComb: Machine learning–based combinations.
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:
Biomarker data from carriers of a rare genetic disorder 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 whether the person is a carrier; 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)] )
Simulated data with healthy and diseased individuals 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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$group, levels = c("not_needed", "needed")) t <- 0.5 stat <- helper_TS(theta = t, markers = markers, status = status)# call data data(laparotomy) # define the function parameters markers <- cbind(laparotomy$ddimer, laparotomy$log_leukocyte) status <- factor(laparotomy$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
Examples data for the dtComb package
data(laparotomy)data(laparotomy)
A data frame with 225 rows and 3 variables:
Indicator whether the procedure was needed; values:
"needed" or "not_needed".
Biomarker 1, D-Dimer protein level in blood, ng/mL
Biomarker 2, Logarithm of Leukocyte count in blood, per mcL
data(laparotomy) laparotomy$group <- factor(laparotomy$group) gcol <- c("#E69F00", "#56B4E9") plot(laparotomy$ddimer, laparotomy$log_leukocyte, col = gcol[as.numeric(laparotomy$group)] )data(laparotomy) laparotomy$group <- factor(laparotomy$group) gcol <- c("#E69F00", "#56B4E9") plot(laparotomy$ddimer, laparotomy$log_leukocyte, col = gcol[as.numeric(laparotomy$group)] )
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", "min_max_scale", "zScore", "tScore", "scale_mean_to_one", "scale_sd_to_one"), 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", "min_max_scale", "zScore", "tScore", "scale_mean_to_one", "scale_sd_to_one"), 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(laparotomy) # define the function parameters markers <- laparotomy[, -1] status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- laparotomy[, -1] status <- factor(laparotomy$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", "min_max_scale", "zScore", "tScore", "scale_mean_to_one", "scale_sd_to_one"), 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", "min_max_scale", "zScore", "tScore", "scale_mean_to_one", "scale_sd_to_one"), 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 containing the computed combination scores and, optionally, diagnostic performance metrics.
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
data(laparotomy) markers <- laparotomy[, -1] status <- factor(laparotomy$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(laparotomy) markers <- laparotomy[, -1] status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- laparotomy[, -1] status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- laparotomy[, -1] status <- factor(laparotomy$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", "min_max_scale", "zScore", "tScore", "scale_mean_to_one", "scale_sd_to_one"), 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", "min_max_scale", "zScore", "tScore", "scale_mean_to_one", "scale_sd_to_one"), 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("laparotomy") data <- laparotomy 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("laparotomy") data <- laparotomy 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(laparotomy) # define the function parameters markers <- laparotomy[, -1] status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- laparotomy[, -1] status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- laparotomy[, -1] status <- factor(laparotomy$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(laparotomy) # define the function parameters markers <- laparotomy[, -1] status <- factor(laparotomy$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 (min_max_scale, 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(laparotomy) # define the function parameters markers <- laparotomy[, -1] markers2 <- std.train(markers, "deviance")# call data data(laparotomy) # define the function parameters markers <- laparotomy[, -1] markers2 <- std.train(markers, "deviance")
Applies a selected mathematical transformation ("log", "exp", "sin", or "cos") to biomarker data.
transform_math(markers, transform)transform_math(markers, transform)
markers |
A |
transform |
A character string specifying the transformation method to be applied.
Supported methods are: |
A numeric data frame containing the transformed biomarkers.
Serra Ilayda Yerlitas, Serra Bersan Gengec, Necla Kochan, Gozde Erturk Zararsiz, Selcuk Korkmaz, Gokmen Zararsiz
data(laparotomy) markers <- laparotomy[, -1] transform_math(markers, transform = "log")data(laparotomy) markers <- laparotomy[, -1] transform_math(markers, transform = "log")