Libraries

library(FRESA.CAD)
library("mlbench")
library("ggplot2")
library(pander)
library(beepr)
library(twosamples)

library(dplyr)
models <-c(BSWiMS.model,NAIVE_BAYES,LASSO_1SE,LASSO_MIN,GLMNET_RIDGE_MIN,GLMNET_ELASTICNET_MIN)
modelsnames <- c("BSWiMS.model","NAIVE_BAYES","LASSO_1SE","LASSO_MIN",
                 "GLMNET_RIDGE_MIN","GLMNET_ELASTICNET_MIN")

20x cv using 70% training and 30% holdout (for LC models)

lc.cvlist <- list()
lc.filteredFitcv <- randomCV_V3(BRCASanJose,
    "recurrence",
    HLCM_EM,
    trainFraction = 0.7,
    repetitions = 20,
    method = filteredFit,
    hysteresis=0.1,
    fitmethod=glm,
    filtermethod=univariate_BinEnsemble,
    filtermethod.control = list(pvalue=0.05),
    family = "binomial")
lc.cvlist[["LC_filteredFit"]] <-lc.filteredFitcv           
i=1 #

for (model in models){
  modelname= paste0("LC_",modelsnames[i])
  cv <- randomCV_V3(BRCASanJose,
                "recurrence",
                HLCM_EM,
                trainSampleSets  = lc.filteredFitcv$trainSamplesSets,
                method = model,
                hysteresis=0.1)
  
  lc.cvlist[[modelname]] <-cv
  i = i+1
                    
  }
save(lc.cvlist, file = "lc.cvlist.RData")

20x cv using 70% training and 30% holdout (for vanilla models)

cvlist <- list()
filteredFitcv <- randomCV(BRCASanJose,
               "recurrence",
                filteredFit,
                trainSampleSets  = lc.filteredFitcv$trainSamplesSets,
                fitmethod=glm,
                filtermethod=univariate_BinEnsemble,
                filtermethod.control = list(pvalue=0.05),
                family = "binomial")

cvlist[["filteredFit"]] <-filteredFitcv           

save(filteredFitcv, file = "filteredFitcv.RData")

i=1 #starts from filteredfit
for (model in models){
  modelname= modelsnames[i]
  #beep()
  cv <- randomCV(BRCASanJose,
                "recurrence",
                model,
                trainSampleSets  = lc.filteredFitcv$trainSamplesSets)
  
  cvlist[[modelname]] <-cv
  i = i+1
                    
  }
save(cvlist, file = "cvlist.RData")

beep()

ROC plots (latent class AUC vs vanilla AUC)

par(mfrow = c(1,2), cex = 1)#combine and adapt the cvlists into one combided 
combined.cvlist <- combine.cvlist(lc.cvlist,cvlist)
cp.combined <- BinaryBenchmark(referenceCV = combined.cvlist)

save(cp.combined, file = "cp.combined.RData")

AUC table, vanilla vs latent class classifier and mean proportion of classes formed during the CVs

load("lc.cvlist.RData")
load("cvlist.RData")
load("cp.combined.RData")

#combine and adapt the cvlists into one combided 
combined.cvlist <- combine.cvlist(lc.cvlist,cvlist)

BRCA_auctable <- get.combined_auctable(cp.combined,lc.cvlist)


write.csv(BRCA_auctable,"BRCA_auctable.csv")
par(mfrow = c(1,1),
    cex = 0.7,
    xpd = T, 
    pty = 'm', #maximal plotting region
    mar = c(3,3,3,10))

cp.combined <-trim.cp(cp.combined)

prBenchmark <- plot(cp.combined)

t_concat_table <- t(concat.table)
write.csv(t_concat_table,"t_concat_table.csv")