Les 267 fonctions de statgh.r (version 6.49) Chargement des fonctions : source("http://forge.info.univ-angers.fr/~gh/wstat/statgh.r",encoding="latin1") Choisissez la fonction : acp acpFacteur acpLoadings addClassMeans aide ajouteTotaux ajusteNomsColonnes allCalcQT allQL allQLm allQLnonum allQLrecap allQLtriap allQLtricr allQT allQT2 allQTdf allqtdbf anaLin anaTcr analexies analyseCoefficientsModeleLogistique analyseMedianes analyseRegression anared approxPoissNorm approximationBinomiale approximationPoissonnienne approximations as.sigcode asc attends auroc aurocQlPred aurocs aurocs_delong bbpQT beanplotQT bendist bestCor bestCorDf bestGroupRep bestValAssoc bioc bloc boxplotQT cadreCah2co cah2co catln catn cats catss cb cd cdr cdrn chaineEnListe chaineEnVectNum charToNum checklm chi2 chi2Adeq chi2Indep chi2IndepTable chi2IndepTableFacteur chr clusterCor clusterCorTrans coefficientsRLB col.names col2fact colMaxs colMedians colMins compMoyData compMoyNoData compPourc compare2QT compare2QTappariees compareScoresBinaires compareScoresFL compareScoresMetavir copies corCircle couleursFL couleursMetavir couleursNmds cpt cr cv datagh ddata debutHtml decritClass decritModeleLogistiqueBinaire decritQL decritQLf decritQT decritQTparFacteur decritQTparFacteurTexte decritRLB devoff df2csv df2dac dfSansCor dfSansNA dimdf dims discordance dql dqt dtQT duree ecrit.csv ecrit.dac ecrit.dar ecrit.df ecrit.xls ect enColonnes enFacteur exploreCorrelations exprimeDuree extrait fcomp finHtml finsink fql fqt ghtrim go gr hbbpQT hhead histEffectifs histProba histQL histoQT hprint htmlsrc ic ice iceQT icm icmQT icp identif identifgc ifiab installe lesColonnes lesVariables lib ligneCadreCtrACP lignePointillesACP linCor linmodelstats lit lit.dac lit.dar lit.dar.lh lit.dar.wd lit.dat lit.dbf lit.texte lit.xls litcol lls lstMod matCor matId matPen maxMatCor mcomed mdc milieu milieux minMatCor modalitesFL modalitesMetavir modelesCLMMetavir modelesFDAMetavir modelesLDAMetavir modelesMDAMetavir modelesQDAMetavir modelesRLB modelesRLIMetavir mot mots moy nbmots noask noconst nodup nomDeFichier nombase nonoui numeroteId optionsPrint ouinon pairsi panel.cor panel.cor2 panel.corpvalue panel.pointsreg parPrint pchShow pctBcLda plotQL plotQT plotQTdet print10 pwd rchModeleLogistique rch_VE recadrage redata reduitVarsCor reformate regh regressionLogistiqueBinaire regressionLogistiqueOrdinale regressionLogistiqueOrdinale2 rlo_ord rlobin rownames rsd ruler run scr sdmax sdr sensSpec showColors simule sinksource sinksrc skku somCols sorsrc src strlen surncarg tailleEchMoy tailleEchProp tdn tmp traceCor traceLin traceQL traceRLB traceTcr triAPlats triAplat triAplatAvecOrdre triAplatNonum triCroise triCroiseBC triCroiseSansMarges triaplat ucfirst vecteurEnChaine verifSol versiongh violinplotQT vvar xls2dar z Exemples d'utilisation de la fonction sensSpec sensSpec(qlbin,yPredites) sensSpec(qlb=bql,qt=bqt,details=FALSE) Corps de la fonction sensSpec sensSpec <- function(qlb,qt,details=TRUE) { ################################################################# library(hash) sco <- qt fcs <- qlb ### ligneDesc("VP","vrais positifs","IO","a priori") ; ### ligneDesc("FP","faux positifs" ,"OA","OA max") ; ### ligneDesc("FN","faux n�gatifs" ,"IP","VPP max") ; ### ligneDesc("VN","vrais n�gatifs" ,"IN","VPN max") ; ### ligneDesc("VPP","valeur pr�dictive positive" ,"IY","YOUDEN max") ; ### ligneDesc("VPN","valeur pr�dictive n�gative" ,"","") ; ### ligneDesc("YOUDEN","indice J de Youden" ,"","") ; ### # boucle de variation du seuil ("cut-off") pour d�terminer les valeurs diagnostiques ### ### # on ne passe en revue que les seuils rencontr�s ### fseuils <- hash() ; ### # on met syst�matiquement 0, 0.5 et 1 comme seuils fseuils[["0.0000"]] = 1 ; fseuils[["0.5000"]] = 1 ; fseuils[["1.0000"]] = 1 ; nbseuils <- 3 ; # nombre de seuils diff�rents nbld <- length(sco) pdl <- 1:nbld for (idl in pdl) { vdd = sprintf("%07.4f",sco[idl]) ; if (has.key(vdd,fseuils)) { fseuils[[vdd]] <- fseuils[[vdd]] + 1 } else { fseuils[[vdd]] <- 1 ; nbseuils <- nbseuils + 1 } ; # fin si } ; # fin pour vseuils <- sort(as.numeric(keys(fseuils))) nbseuilsmax <- 200 ; xdata <- vector() ; ydata <- vector() ; # premi�re boucle : on calcule les valeurs max au passage seuil <- 0.0 ; pas <- 0.01 ; ym <- -1 ; # pour youden max im <- 0 ; cm <- -1 ; sm <- -1 ; sp <- -1 ; # valeurs pour seuils max vsio <- 0.5 ; vsoa <- 0 ; vcoa = 0 ; vsip <- 0 ; vcip = 0 ; vsin <- 0 ; vcin = 0 ; vsiy <- 0 ; idsvpp0p9 <- 0 idsvpn0p9 <- 0 lstx <- "" ; lsty <- "" ; lstx2 <- "" ; lsty2 <- "" ; # tableaux de stockage ts_na <- vector() ; ts_nb <- vector() ; ts_nc <- vector() ; ts_nd <- vector() ; ts_spec <- vector() ; ts_sens <- vector() ; ts_vpp <- vector() ; ts_vpn <- vector() ; ts_you <- vector() ; ts_ova = array() ; ## while (seuil<=1.001) { iseuil <- 1 ; while (iseuil <= nbseuils) { seuil <- vseuils[iseuil] ; ### ### # comptage des biens et mal class�s ### # nbl est le nombre de donn�es ### # en idl, sco[idl] est la valeur de la QT et fcs[idl] la valeur de la QL ### # pour savoir si on vaut 0 ou 1 on utilise la variable seuil ### na <- 0 ; # bien class�s positifs = vrais positifs nb <- 0 ; # faux positifs nc <- 0 ; # faux n�gatifs nd <- 0 ; # bien class�s n�gatifs = vrais n�gatifs ### ### for (idl in pdl) { vdd <- sco[idl] ; vfc <- fcs[idl] ; #cat(" idl ",idl," vdd ",vdd," vfc ",vfc," seuil ",seuil," \n") if (vdd<=seuil) { vda <- 0 ; } else { vda <- 1 ; } ; if ((vfc==1) & (vda==1)) { na <- na + 1 ; } ; if ((vfc==0) & (vda==1)) { nb <- nb + 1 ; } ; if ((vfc==1) & (vda==0)) { nc <- nc + 1 ; } ; if ((vfc==0) & (vda==0)) { nd <- nd + 1 ; } ; } ; # fin pour if ((na+nc)==0) { sensi <- 0 ; } else { sensi <- na/(na+nc) ; } ; if ((nb+nd)==0) { speci <- 0 ; } else { speci <- nd/(nb+nd) ; } ; if ((na+nb)==0) { vpp <- 1 ; } else { vpp <- na/(na+nb) ; } ; if ((nc+nd)==0) { vpn <- 1 ; } else { vpn <- nd/(nc+nd) ; } ; voa <- (na+nd)/(na+nb+nc+nd) ; you <- sensi + speci -1 ; if (you>ym) { cm <- seuil ; ym <- you ; sm <- sensi ; sp <- speci ; vppm <- vpp ; vpnm <- vpn ; vsiy <- seuil ; } ; # fin de si if ((vpp>vcip) & (na+nb>0) ) { vcip <- vpp ; vsip <- seuil ; } ; if ((vpn>vcin) & (nc+nd>0) ) { vcin <- vpn ; vsin <- seuil ; } ; if (voa>vcoa) { vcoa <- voa ; vsoa <- seuil ; } ; # stockage pour les autres boucles ts_na[iseuil] <- na ; ts_nb[iseuil] <- nb ; ts_nc[iseuil] <- nc ; ts_nd[iseuil] = nd ; ts_spec[iseuil] = speci ; ts_sens[iseuil] = sensi ; ts_vpp[iseuil] = vpp ; ts_vpn[iseuil] = vpn ; ts_you[iseuil] = you ; ts_ova[iseuil] = voa ; iseuil <- iseuil + 1 } ; # fin de tant que ### ### # deuxi�me boucle : on affiche ### cols <- chaineEnListe("CUTOFF CRIT VP FP FN VN TOTAL SPEC 1-SPEC SENS VPP VPN YOUDEN OA ") ; nbc <- length(cols) tabRes <- matrix(nrow=nbseuils,ncol=nbc) colnames(tabRes) <- cols #cat(" CUTOFF CRIT VP FP FN VN TOTAL SPEC 1-SPEC SENS VPP VPN YOUDEN OA\n") ; iseuil <- 1 ; pseuil <- -1 ; is_iyou <- 0 ; is_iova <- 0 ; is_ivpp <- 0 ; is_ivpn <- 0 ; while (iseuil <= nbseuils) { seuil <- vseuils[iseuil] ; # comptage des biens et mal class�s # nbl est le nombre de donn�es # en idl, sco[idl] est la valeur de la QT et fcs[idl] la valeur de la QL # pour savoir si on vaut 0 ou 1 on utilise la variable seuil na <- ts_na[iseuil] ; nb <- ts_nb[iseuil] ; nc <- ts_nc[iseuil] ; nd <- ts_nd[iseuil] ; tabRes[iseuil,"CUTOFF"] <- sprintf("%9.4f",seuil) tabRes[iseuil,"VP"] <- na tabRes[iseuil,"FP"] <- nb tabRes[iseuil,"FN"] <- nc tabRes[iseuil,"VN"] <- nd tabRes[iseuil,"TOTAL"] <- na+nb+nc+nd sensi <- ts_sens[iseuil] ; speci <- ts_spec[iseuil] ; vpp <- ts_vpp[iseuil] ; vpn <- ts_vpn[iseuil] ; you <- ts_you[iseuil] ; ova <- ts_ova[iseuil] ; umspi <- 1 - speci ; #ls <- paste(ls,sprintf("%9.3f",seuil)) cri <- "" ; if ((idsvpp0p9==0) & (vpp>=0.9)) { cri <- "VPP0.9" idsvpp0p9 <- iseuil } # fin si if ((idsvpn0p9==0) & (vpn<=0.9)) { cri <- "VPN0.9" idsvpn0p9 <- iseuil } # fin si if (seuil==vsio) { cri <- "IO " ; } ; if (seuil==vsoa) { cri <- "OA " ; is_ova <- iseuil ; } ; if (seuil==vsip) { cri <- "IP " ; is_vpp <- iseuil ; } ; if (seuil==vsin) { cri <- "IN " ; is_vpn <- iseuil ; } ; if (seuil==vsiy) { cri <- "IY " ; is_you <- iseuil ; } ; #ls <- paste(ls," ",cri) ; tabRes[iseuil,"CRIT"] <- cri #ls <- paste(ls,sprintf("%6d",na),sprintf("%6d",nb),sprintf("%6d",nc),sprintf("%6d",nd)) ; #ls <- paste(ls,sprintf(" %6d ",(na+nb+nc+nd))) ; #ls <- paste(ls,sprintf("%12.7f",speci)) ; #ls <- paste(ls,sprintf("%12.7f",umspi)) ; #ls <- paste(ls,sprintf("%12.7f",sensi)) ; #ls <- paste(ls,sprintf("%12.7f",vpp)) ; #ls <- paste(ls,sprintf("%12.7f",vpn)) ; #ls <- paste(ls,sprintf("%12.7f",you)) ; #ls <- paste(ls,sprintf("%12.7f",ova)) ; #ls <- paste(ls,"\n") ; tabRes[iseuil,"SPEC"] <- sprintf("%11.6f",speci); tabRes[iseuil,"1-SPEC"] <- sprintf("%11.6f",umspi) ; tabRes[iseuil,"SENS"] <- sprintf("%11.6f",sensi) ; tabRes[iseuil,"VPP"] <- sprintf("%11.6f",vpp) ; tabRes[iseuil,"VPN"] <- sprintf("%11.6f",vpn) ; tabRes[iseuil,"YOUDEN"] <- sprintf("%11.6f",you) ; tabRes[iseuil,"OA"] <- sprintf("%11.6f",ova) ; n_seuil <- seuil + 0.0 ; n_pseuil <- pseuil + 0.0 ; #if (n_seuil!=n_pseuil) { cat(ls) ; } ; seuil <- seuil + pas ; pseuil <- seuil ; iseuil <- iseuil + 1 } ; # fin de tant que tabRes <- as.data.frame(tabRes) colnames(tabRes) <- cols if (details) { cat("\nListe des seuils et de leurs caract�ristiques \n\n") print(tabRes,row.names=FALSE) } # fin si cat("\nSeuils remarquables parmi les ",nbseuils," seuils vus\n\n") ; tabRes2 <- tabRes[ tabRes[,"CRIT"]!="", ] print(tabRes2,row.names=FALSE) } # fin de fonction sensSpec Cliquer ici pour revenir à la page de départ Code-source de la page explications archive zip du code de statgh.r Retour à la page principale de (gH)
Chargement des fonctions :
source("http://forge.info.univ-angers.fr/~gh/wstat/statgh.r",encoding="latin1")
Choisissez la fonction :
acp acpFacteur acpLoadings addClassMeans aide ajouteTotaux ajusteNomsColonnes allCalcQT allQL allQLm allQLnonum allQLrecap allQLtriap allQLtricr allQT allQT2 allQTdf allqtdbf anaLin anaTcr analexies analyseCoefficientsModeleLogistique analyseMedianes analyseRegression anared approxPoissNorm approximationBinomiale approximationPoissonnienne approximations as.sigcode asc attends auroc aurocQlPred aurocs aurocs_delong bbpQT beanplotQT bendist bestCor bestCorDf bestGroupRep bestValAssoc bioc bloc boxplotQT cadreCah2co cah2co catln catn cats catss cb cd cdr cdrn chaineEnListe chaineEnVectNum charToNum checklm chi2 chi2Adeq chi2Indep chi2IndepTable chi2IndepTableFacteur chr clusterCor clusterCorTrans coefficientsRLB col.names col2fact colMaxs colMedians colMins compMoyData compMoyNoData compPourc compare2QT compare2QTappariees compareScoresBinaires compareScoresFL compareScoresMetavir copies corCircle couleursFL couleursMetavir couleursNmds cpt cr cv datagh ddata debutHtml decritClass decritModeleLogistiqueBinaire decritQL decritQLf decritQT decritQTparFacteur decritQTparFacteurTexte decritRLB devoff df2csv df2dac dfSansCor dfSansNA dimdf dims discordance dql dqt dtQT duree ecrit.csv ecrit.dac ecrit.dar ecrit.df ecrit.xls ect enColonnes enFacteur exploreCorrelations exprimeDuree extrait fcomp finHtml finsink fql fqt ghtrim go gr hbbpQT hhead histEffectifs histProba histQL histoQT hprint htmlsrc ic ice iceQT icm icmQT icp identif identifgc ifiab installe lesColonnes lesVariables lib ligneCadreCtrACP lignePointillesACP linCor linmodelstats lit lit.dac lit.dar lit.dar.lh lit.dar.wd lit.dat lit.dbf lit.texte lit.xls litcol lls lstMod matCor matId matPen maxMatCor mcomed mdc milieu milieux minMatCor modalitesFL modalitesMetavir modelesCLMMetavir modelesFDAMetavir modelesLDAMetavir modelesMDAMetavir modelesQDAMetavir modelesRLB modelesRLIMetavir mot mots moy nbmots noask noconst nodup nomDeFichier nombase nonoui numeroteId optionsPrint ouinon pairsi panel.cor panel.cor2 panel.corpvalue panel.pointsreg parPrint pchShow pctBcLda plotQL plotQT plotQTdet print10 pwd rchModeleLogistique rch_VE recadrage redata reduitVarsCor reformate regh regressionLogistiqueBinaire regressionLogistiqueOrdinale regressionLogistiqueOrdinale2 rlo_ord rlobin rownames rsd ruler run scr sdmax sdr sensSpec showColors simule sinksource sinksrc skku somCols sorsrc src strlen surncarg tailleEchMoy tailleEchProp tdn tmp traceCor traceLin traceQL traceRLB traceTcr triAPlats triAplat triAplatAvecOrdre triAplatNonum triCroise triCroiseBC triCroiseSansMarges triaplat ucfirst vecteurEnChaine verifSol versiongh violinplotQT vvar xls2dar z
Cliquer ici pour revenir à la page de départ
Code-source de la page explications archive zip du code de statgh.r
Retour à la page principale de (gH)