
.libPaths("C:\\PERSO")
library(caret)
library(epiR)
library(epitools)
library(RVAideMemoire)
library(survey)
library(MASS)
library(questionr)
library(FactoMineR)
library(plotrix)
library(pROC)


###fonction used to obtain performance criteria for the predicitive model
bilanEVAL<-function(maladie,test){
  T<-table(maladie,test)
  A<-T[2,2]
  D<-T[1,1]
  C<-T[2,1]
  B<-T[1,2]
  
  sensibilite<- (A/(A+C))*100
  specificite<- (D/(B+D))*100
  VPP<- (A/(A+B))*100
  VPN<-(D/(C+D))*100
  Youden<-(sensibilite/100+specificite/100-1)
  QdeYULE<-((A*D-B*C)/(A*D+B*C))
  resultat<-c(sensibilite,specificite,VPP,VPN,Youden,QdeYULE)
  return(resultat)
}

##data set
baseech<-read.csv2("baseech.csv",header=TRUE,sep=";",na.strings="NA",dec=",")
baseF<-subset(baseech,baseech$SEXE=="F")
head(baseF)
length(baseF$NOM)
# cration of the 10 folds 
foldsF <- createFolds(factor(baseF$SEVERITE1), k = 10, list = FALSE)
length(foldsF)
baseFf<-cbind(baseF,foldsF)
head(baseFf)



for(i in 1:10)
{
  #### training data
  data<-subset(baseFf,baseFf$foldsF!=i)
  
  
  multiF<-glm(data$SEVERITE~data$CLASSEAGE2+data$HTA+data$SAIGNEMENTMUQUEUSES+data$ALC+data$NEWPLAQNORMEhosp+data$NEWALATNORMEhosp10N+data$ERUPTIONSCUTANNEES2, family=binomial)
  
  
  assign(paste0("res_",i),summary(multiF))
  
  ###validation data
  data<-subset(baseFf,baseFf$foldsF==i)
  
  pred1 <- predict(multiF, newdata = data, type="response",na.action=na.omit)
  
  ##AUC
  assign(paste0("auc_",i),roc(data$SEVERITE1,pred1)$auc)
  assign(paste0("auc_ci_",i),ci.auc(data$SEVERITE1,pred1))
  
  ###PLOT AUC
  x11()
  
  plot.roc(data$SEVERITE1,pred1,print.auc=TRUE, auc.polygon=TRUE,col="red",main=paste0("Sample ",i))
  
  ### best threshold
  
  roct<-roc(data$SEVERITE1,pred1)
  (thres<-coords(roct,x="best"))
  seuil<-thres[1]
  assign(paste0("seuil",i),seuil)
  
  cclpred1<-c()
  for(i in 1:length(data$NOM))
  {if(pred1[i]<seuil){cclpred1[i]<-"<seuil"}
    if(pred1[i]>=seuil){cclpred1[i]<-">=seuil"}
  }
  cclpred1
  table(data$SEVERITE1,cclpred1)
  print(bilanEVAL(data$SEVERITE1,cclpred1))
  assign(paste0("bilan",i),bilanEVAL(data$SEVERITE1,cclpred1))
  
  
}

for(i in 1:10){
  
  print(paste0("res_",i))
  print(eval(parse(text = paste0("res_",i))))
  
  print(paste0("auc_",i))
  print(eval(parse(text = paste0("auc_",i))))
  
  print(paste0("auc_ci_",i))
  print(eval(parse(text = paste0("auc_ci_",i))))
  
  print(paste0("seuil",i))
  print(eval(parse(text = paste0("seuil",i))))
}

for(i in 1:10){
  print(paste0("bilan",i))
  print(eval(parse(text = paste0("bilan",i))))
}


for(i in 1:10){
  print(paste0("auc_",i))
  print(eval(parse(text = paste0("auc_",i))))
}

for(i in 1:10){
  print(paste0("seuil",i))
  print(eval(parse(text = paste0("seuil",i))))
}

