## tableau résumé de toutes les régressions logistiques simples ## pour un dataframe de variables quantitatives dont la colonne 1 est la cible # lecture des fonctions gh if (!exists("cats")) { void <- capture.output( source("http://forge.info.univ-angers.fr/~gh/statgh.r",encoding="latin1") ) } ####################################################################### mrlb <- function(df) { ####################################################################### nbvar <- ncol(df) # rappel rapide des données print(summary(df)) # préparation du tableau des résultats cols <- c("AUROC","AIC","BIC") nbc <- length(cols) tabRes <- data.frame(matrix(NA,nrow=nbvar-1,ncol=nbc)) names(tabRes) <- cols row.names(tabRes) <- names(df)[2:nbvar] # remplissage for (idv in (2:nbvar)) { rlb <- glm( df[,1] ~ df[ ,idv] ,family="binomial") ypredites <- predict(rlb,newdata=df,type="response") tabRes$AUROC[ idv-1 ] <- round(aurocQlPred(unlist(df[,1]),ypredites),4) tabRes$AIC[ idv-1 ] <- round(AIC(rlb),4) tabRes$BIC[ idv-1 ] <- round(BIC(rlb),4) } # fin pour idv # affichage cat("\nTableau de toutes les régressions logistiques simples\n\n") idx <- order(tabRes$AUROC,decreasing=TRUE) print(tabRes[idx,]) cat("\n") } # fin de fonction mrls ####################################################################### ## exemples d'applications # iris data(iris) irisb <- iris irisb$setosa <- ifelse(iris$Species=="setosa",1,0) irisb <- irisb[ , c("setosa","Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width") ] mrlb( irisb ) # LEA lea <- lit.dar("http://forge.info.univ-angers.fr/~gh/Datasets/lea.dar") lea$plante <- ifelse(lea$reign=="Viridiplantae",1,0) lea$plante <- ifelse(lea$reign=="Viridiplantae",1,0) leaOK <- lea[ (lea$mw>0) & (lea$length<900) , ] leaOK <- leaOK[ , c("plante","length", "foldindex", "pi", "mw", "gravy") ] mrlb( leaOK )