Valid XHTML     Valid CSS2    

Listing du fichier progstat.php avec syntaxhighlighter


        <?php
        
        #    (gH)   -_-  progstat.php  ;  TimeStamp (unix) : 21 Juin 2010 vers 13:05
        
        ###########################################################
        
        require_once("../Pear/pearstats.php") ;
        require_once("../statuno7.php") ;
        # http://pear.php.net/package-stats.php
        # require_once("pecl_stats.php") ;
        
        ###########################################################
        ###########################################################
        
        function decrit_QT( $tabdata,$un) {
        
        ###########################################################
        
          echo "\n\n" ;
          $ghs = new Math_Stats() ;
          $ghs->setData($tabdata) ;
          $tdr = $ghs->calcFull() ;
        # pour tout voir : print_r($ghs->calcFull()) ;
          $moy = $tdr["mean"] ;
          $ect = $tdr["stdev"] ;
          if (($moy==0) or (is_object($ect))) { $cdv = "   non calculableq" ; } else { $cdv = sprintf("%8.2f",100.0*($ect/$moy))." %" ; } ;
          echo "   Nombre de valeurs        : ".sprintf("%8.2f",$tdr["count"])." \n\n" ;
          echo "   Minimum                  : ".sprintf("%8.2f",$tdr["min"])." $un\n" ;
          echo "   M&eacute;diane                  : ".sprintf("%8.2f",$tdr["median"])." $un\n" ;
          echo "   Moyenne                  : ".sprintf("%8.2f",$moy)." $un\n" ;
          echo "   Ecart-type               : ".sprintf("%8.2f",$ect)." $un\n" ;
          echo "   Coefficient de variation : $cdv \n" ;
          echo "   Maximum                  : ".sprintf("%8.2f",$tdr["max"])." $un\n" ;
          echo "\n" ;
        
        #  print_r($ghs->calcFull()) ;
        
        } ; # fin de fonction decritQT
        
        ###########################################################
        
        function retourCalcStat()  {
        
        ###########################################################
        
        echo "<center>" ;
        echo "<a href=\"calcstat.htm\">RETOUR</a> &nbsp; &agrave; la page des calculs" ;
        echo "</center>" ;
        
        } ; #  function retourCalcStat
        
        ###########################################################
        ###########################################################
        
        function erreur( $typErr,$lnb="",$pop=0 ) {
        
        ###########################################################
        ###########################################################
        
         if ($typErr=="calcul") {
            echo " <h2> calcul demand&eacute; inconnu !</h2>" ;
            echo " ce que vous cherchez est probablement <a href=\"calcstat.htm\">ici</a>\n" ;
         } ; # fin si erreur sur le calcul &agrave; effectuer
        
         if ($typErr=="defnb") {
          echo "<h1><span class=\"grouge\">erreur</span></h1>\n" ;
          echo "<blockquote>\n" ;
          echo "<h2>vous n'avez pas fourni $lnb \n"  ;
          if ($pop>0) {
             echo "pour la population $pop \n"  ;
          } ; # fin si sur pop
          echo "</h2>\n" ;
          echo "</blockquote>\n" ;
         } ; # fin si erreur sur un nb en saisie
        
         if ($typErr=="valnb") {
          echo "<h1><span class=\"grouge\">erreur</span></h1>\n" ;
          echo "<blockquote>\n" ;
          echo "<h2>$lnb \n"  ;
          if ($pop>0) {
             echo "pour la population $pop n'est pas un nombre entier\n"  ;
          } ; # fin si sur pop
          echo "</h2>\n" ;
          echo "</blockquote>\n" ;
         } ; # fin si erreur sur type des nb entiers en saisie
        
         if ($typErr=="valre") {
          echo "<h1><span class=\"grouge\">erreur</span></h1>\n" ;
          echo "<blockquote>\n" ;
          echo "<h2>$lnb \n"  ;
          if ($pop>0) {
             echo "pour la population $pop n'est pas un nombre r&eacute;el\n"  ;
          } ; # fin si sur pop
          echo "</h2>\n" ;
          echo "</blockquote>\n" ;
         } ; # fin si erreur sur type des nb r&eacute;els en saisie
        
         if ($typErr=="divnb") {
          echo "<h1><span class=\"grouge\">erreur</span></h1>\n" ;
          echo "<blockquote>\n" ;
          echo "<h2>$lnb \n"  ;
          if ($pop>0) {
             echo "pour la population $pop ne doit pas &ecirc;tre nul \n"  ;
          } ; # fin si sur pop
          echo "</h2>\n" ;
          echo "</blockquote>\n" ;
         } ; # fin si erreur sur nb nul comme d&eacute;nominateur
        
         if ($typErr=="tige") {
          echo "<h1><span class=\"grouge\">erreur</span></h1>\n" ;
          echo "<blockquote>\n" ;
          echo "<h2>\n" ;
             echo "  la valeur pour la tige doit &ecirc;tre un nombre entier strictement positif et vous avez "  ;
             echo "  donn&eacute; la valeur <br />\n&nbsp;&nbsp;&nbsp;\n '$lnb' \n" ;
          echo "</h2>\n" ;
          echo "</blockquote>\n" ;
         } ; # fin si erreur sur la tige
        
         if ($typErr=="datatige") {
          echo "<h1><span class=\"grouge\">erreur</span></h1>\n" ;
          echo "<blockquote>\n" ;
          echo "<h2>\n" ;
             echo "  vous n'avez fourni aucune valeur ! \n"  ;
          echo "</h2>\n" ;
          echo "</blockquote>\n" ;
         } ; # fin si erreur sur les valeurs pour tige
        
        } ; # fin fonction erreur
        
        ###########################################################
        ###########################################################
        
        function compPct() {
        
        ###########################################################
        ###########################################################
        
        echo "<h2>Comparaison bilat&eacute;rale de Pourcentages </h2> " ;
        echo "<h2>&nbsp;&nbsp;&nbsp;(&eacute;chantillons NON APPARIES)</h2> " ;
        
        
        if (isset($_GET["nb1"]))  { $nb1  = $_GET["nb1"] ; } ;
        if (isset($_POST["nb1"])) { $nb1  = $_POST["nb1"] ; } ;
        
        if (isset($_GET["nb2"]))  { $nb2  = $_GET["nb2"] ; } ;
        if (isset($_POST["nb2"])) { $nb2  = $_POST["nb2"] ; } ;
        
        if (isset($_GET["ni1"]))  { $ni1  = $_GET["ni1"] ; } ;
        if (isset($_POST["ni1"])) { $ni1  = $_POST["ni1"] ; } ;
        
        if (isset($_GET["ni2"]))  { $ni2  = $_GET["ni2"] ; } ;
        if (isset($_POST["ni2"])) { $ni2  = $_POST["ni2"] ; } ;
        
        ## echo "ni1 = $ni1 ; nb1 = $nb1 ; ni2 = $ni2 ; nb2 = $nb2 \n" ;
        
        $ok = 1 ;
        
        ############################################################
        #
        # v&eacute;rifions que les 4 champs d'entr&eacute;e sont remplis
        #
        ############################################################
        
        if ($ni1=="") {
          erreur("defnb","le nombre d'individus marqu&eacute;s",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($nb1=="") {
          erreur("defnb","le nombre d'individus en tout",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($ni2=="") {
          erreur("defnb","le nombre d'individus marqu&eacute;s",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($nb2=="") {
          erreur("defnb","le nombre d'individus en tout",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($ok==1) {
        
        ############################################################
        #
        # v&eacute;rifions que les 4 champs d'entr&eacute;e sont des entiers
        #
        ############################################################
        
        if (! preg_match("/^[0-9]+$/",$ni1) ) {
          erreur("valnb","le nombre d'individus marqu&eacute;s",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if (! preg_match("/^[0-9]+$/",$nb1) ) {
          erreur("valnb","le nombre d'individus en tout",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if (! preg_match("/^[0-9]+$/",$ni2) ) {
          erreur("valnb","le nombre d'individus marqu&eacute;s",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        if (! preg_match("/^[0-9]+$/",$nb2) ) {
          erreur("valnb","le nombre d'individus en tout",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        } ; # fin de si ok=1
        
        ############################################################
        #
        # v&eacute;rifions enfin que les nombres d'individus en tout
        # ne sont pas nuls
        #
        ############################################################
        
        if ($ok==1) {
        
        if ($nb1==0) {
          erreur("divnb","le nombre d'individus en tout ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($nb2==0) {
          erreur("divnb","le nombre d'individus en tout ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        } ; # fin de si ok=1
        
        ############################################################
        #
        #    calculs v&eacute;ritables
        #
        ############################################################
        
        
        if ($ok==1) {
        
        $ni    = $ni1 + $ni2 ;
        $nb    = $nb1 + $nb2 ;
        
        $f_nb1 = sprintf("%5d",$nb1) ;
        $f_nb2 = sprintf("%5d",$nb2) ;
        $f_nb  = sprintf("%5d",$nb ) ;
        
        $f_ni1 = sprintf("%5d",$ni1) ;
        $f_ni2 = sprintf("%5d",$ni2) ;
        $f_ni  = sprintf("%5d",$ni ) ;
        
        $p1 = 100.0*($ni1/$nb1) ;
        $p2 = 100.0*($ni2/$nb2) ;
        $p  = 100.0*($ni /$nb ) ;
        
        $f_p1 = sprintf("%5.1f",$p1) ;
        $f_p2 = sprintf("%5.1f",$p2) ;
        $f_p  = sprintf("%5.1f",$p ) ;
        
        $p = $p/100 ;
        
        $dp   = abs($p1 - $p2)/100 ;
        $q    = $p*(1-$p)*((1/$nb1)+(1/$nb2)) ;
        $r    = sqrt($q) ;
        $ecre = $dp/$r ;
        
        $f_ecre  = sprintf("%7.2f",$ecre ) ;
        
        
        echo "<blockquote>" ;
        echo "<pre>" ;
        
        echo "<span class=\"gbleu\">";
        echo " Population 1 :\n";
        echo "</span>";
        echo "    $f_ni1  individus marqu&eacute;s \n" ;
        echo "    $f_nb1  individus en tout \n" ;
        echo "           soit une proportion de $f_p1 %\n" ;
        echo "\n" ;
        echo "<span class=\"gbleu\">";
        echo " Population 2 :\n" ;
        echo "</span>";
        echo "    $f_ni2  individus marqu&eacute;s \n" ;
        echo "    $f_nb2  individus en tout \n" ;
        echo "           soit une proportion de $f_p2 %\n" ;
        
        echo "\n" ;
        echo "<span class=\"bleu\">";
        echo " Si on r&eacute;unit les deux populations, on obtient \n" ;
        echo "</span>";
        echo "    $f_ni  individus marqu&eacute;s \n" ;
        echo "    $f_nb  individus en tout \n" ;
        echo "           soit une proportion de $f_p  %\n" ;
        
        echo "\n" ;
        echo "<span class=\"vert\">";
        echo "  Valeur de l'&eacute;cart-r&eacute;duit : $f_ecre \n" ;
        echo "     au seuil de 5 % soit la valeur 1.96\n" ;
        
        echo "<span class=\"grouge\">";
        
        echo "     on " ;
        
        if ($ecre<1.96) {  echo " ne" ; } ; # fin de si
        
        echo " peut" ;
        
        if ($ecre<1.96) {  echo " pas" ; } ; # fin de si
        
        echo " rejeter" ;
        
        echo "</span>";
        echo " l'hypoth&egrave;se que les pourcentages sont &eacute;gaux.\n\n" ;
        echo "</span>";
        
        $pval = fonction_R("2*pnorm(-$ecre)") ;
        if (strlen($pval)>0) {
          echo "  La p-value bilat&eacute;rale est sans doute $pval soit en arrondi ".sprintf("%5.3f",$pval) ;
        } ; # fin si
        
        echo "</pre>" ;
        
        # un histogramme peut aider &agrave; visualiser, donc :
        
        $q1 = 100 - $p1 ;
        $q2 = 100 - $p2 ;
        $ti = "&amp;xmrks=marqu%E9s_non%20marqu%E9s" ;
        $src1  = "../jphistopct.php?vdata=$p1"."_"."$q1"."&amp;titr=%20POPULATION%201$ti" ;
        $src1i = "$src1&amp;tailx=300&amp;taily=200" ;
        $src2  = "../jphistopct.php?vdata=$p2"."_"."$q2"."&amp;titr=%20POPULATION%202$ti" ;
        $src2i = "$src2&amp;tailx=300&amp;taily=200" ;
        
        echo "<table cellpadding=\"50\">\n" ;
        echo "<tr> \n" ;
        echo "<td> \n" ;
        echo "<a href=\"$src1\"><img src=\"$src1i\" alt=\"histogramme s&eacute;rie 1\" /></a> \n" ;
        echo "</td> \n" ;
        echo "<td> \n" ;
        echo "<a href=\"$src1\"><img src=\"$src2i\" alt=\"histogramme s&eacute;rie 2\" /></a> \n" ;
        echo "</td> \n" ;
        echo "</tr> \n" ;
        echo "</table> \n" ;
        
        # on affiche les syntaxe R et Sas pour ces donn&eacute;es :
        
        echo "<p class=\"texte\"> \n" ;
        echo " Si vous disposez du logiciel gratuit <a href=\"../tuteurs/tutrstat.htm\">R</a>, vous pouvez v&eacute;rifier ces calculs \n" ;
        echo " &agrave; l'aide de l'expression&nbsp;: \n" ;
        echo "</p>" ;
        
        echo "<pre>" ;
        echo "\n" ;
        echo "     <span class=\"vert\">prop.test(c($ni1,$ni2),c($nb1,$nb2)) </span>\n" ;
        echo "\n" ;
        echo "</pre>" ;
        
        echo "<p class=\"texte\"> \n" ;
        echo "Vous pouvez &eacute;galement faire un \"copier-coller\" de cett expression vers les sites \n" ;
        echo " Rweb comme " ;
        showurlcmt("http://pbil.univ-lyon1.fr/Rweb/","pbil") ;
        echo " ou " ;
        showurlcmt("http://bayes.math.montana.edu/Rweb/Rweb.general.html","bayes") ;
        echo ".</p>" ;
        
        
        echo "<p class=\"texte\"> \n" ;
        echo " Si vous disposez du logiciel payant <a href=\"../tuteurs/tutsas.htm\">SAS</a>, vous pouvez v&eacute;rifier ces calculs \n" ;
        echo " &agrave; l'aide des instructions&nbsp;: \n" ;
        echo "</p>" ;
        
        $nj1 = $nb1 - $ni1 ;
        $nj2 = $nb2 - $ni2 ;
        
        echo "<pre>" ;
        echo "<span class=\"vert\">\n" ;
        
        echo "     data compPourc ; \n" ;
        echo "          input population marque $ effectif ; \n" ;
        echo "          datalines; \n" ;
        echo "     1   Oui  $ni1 \n" ;
        echo "     1   Non  $nj1 \n" ;
        echo "     2   Oui  $ni2 \n" ;
        echo "     2   Non  $nj2 \n" ;
        echo "     ; \n" ;
        echo "      \n" ;
        echo "     run; \n" ;
        echo "      \n" ;
        echo "     proc freq data=compPourc ; \n" ;
        echo "       tables population*marque / nopercent nocol Chisq Exact; \n" ;
        echo "       weight effectif ; \n" ;
        echo "     run; \n" ;
        echo "\n" ;
        echo "</span>\n" ;
        echo "</pre>" ;
        
        echo "<p class=\"texte\"> \n" ;
        echo " Vous pouvez consulter la page <a href=\"comppourc.php\">comppourc</a>, pour lire les r&eacute;sultats \n" ;
        echo " fournis par <a href=\"../tuteurs/tutrstat.htm\">R</a>" ;
        echo " et <a href=\"../tuteurs/tutsas.htm\">SAS</a> si on utilise les donn&eacute;es des deux exemples\n" ;
        echo " de d&eacute;monstration.\n" ;
        echo "</p>" ;
        
        retourCalcStat() ;
        
        echo "</blockquote>" ;
        
        } ; # fin de si ok=1
        
        } ; # fin fonction compPct
        
        ###########################################################
        ###########################################################
        
        function compMoy() {
        
        ###########################################################
        ###########################################################
        
        echo "<h2>Comparaison bilat&eacute;rale de Moyennes </h2> " ;
        echo "<h2>&nbsp;&nbsp;&nbsp;(&eacute;chantillons GAUSSIENS ind&eacute;pendants)</h2> " ;
        echo "<h2>&nbsp;&nbsp;&nbsp;(variances connues et suppos&eacute;es &eacute;gales)</h2> " ;
        
        if (isset($_GET["nbv1"]))  { $nbv1  = $_GET["nbv1"] ; } ;
        if (isset($_POST["nbv1"])) { $nbv1  = $_POST["nbv1"] ; } ;
        
        if (isset($_GET["nbv2"]))  { $nbv2  = $_GET["nbv2"] ; } ;
        if (isset($_POST["nbv2"])) { $nbv2  = $_POST["nbv2"] ; } ;
        
        if (isset($_GET["moy1"]))  { $moy1  = $_GET["moy1"] ; } ;
        if (isset($_POST["moy1"])) { $moy1  = $_POST["moy1"] ; } ;
        
        if (isset($_GET["moy2"]))  { $moy2  = $_GET["moy2"] ; } ;
        if (isset($_POST["moy2"])) { $moy2  = $_POST["moy2"] ; } ;
        
        if (isset($_GET["vri1"]))  { $vri1  = $_GET["vri1"] ; } ;
        if (isset($_POST["vri1"])) { $vri1  = $_POST["vri1"] ; } ;
        
        if (isset($_GET["vri2"]))  { $vri2  = $_GET["vri2"] ; } ;
        if (isset($_POST["vri2"])) { $vri2  = $_POST["vri2"] ; } ;
        
        if (isset($_GET["ect1"]))  { $ect1  = $_GET["ect1"] ; } ;
        if (isset($_POST["ect1"])) { $ect1  = $_POST["ect1"] ; } ;
        
        if (isset($_GET["ect2"]))  { $ect2  = $_GET["ect2"] ; } ;
        if (isset($_POST["ect2"])) { $ect2  = $_POST["ect2"] ; } ;
        
        ## echo " $nbv1  $nbv2  $moy1  $moy2  $vri1  $vri2 \n" ;
        
        $ok = 1 ;
        
        ############################################################
        #
        # v&eacute;rifions que les 6 champs d'entr&eacute;e sont remplis
        #
        ############################################################
        
        if ($nbv1=="") {
          erreur("defnb","le nombre d'individus ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($nbv2=="") {
          erreur("defnb","le nombre d'individus ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($moy1=="") {
          erreur("defnb","la moyenne ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($moy2=="") {
          erreur("defnb","la moyenne ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($vri1=="") {
           if ($ect1=="") {
              erreur("defnb","la variance ",1) ;
              $ok = 0 ;
           } ;
        } ; # fin de si
        
        if ($vri2=="") {
           if ($ect2=="") {
              erreur("defnb","la variance ",2) ;
              $ok = 0 ;
           } ;
        } ; # fin de si
        
        ############################################################
        #
        # v&eacute;rifions que les 2 effectifs sont des entiers
        #
        ############################################################
        
        if ($ok==1) {
        
        if (! preg_match("/^[0-9]+$/",$nbv1) ) {
          erreur("valnb","le nombre d'individus ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if (! preg_match("/^[0-9]+$/",$nbv2) ) {
          erreur("valnb","le nombre d'individus ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        } ; # fin de si ok=1
        
        ############################################################
        #
        # v&eacute;rifions que les 2 moyennes et variances sont des r&eacute;els
        #
        ############################################################
        
        if ($ok==1) {
        
        $moy1 = trim($moy1) ;
        if (! preg_match("/^[0-9]+\.?[0-9]*$/",$moy1) ) {
          erreur("valre","la moyenne ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        $moy2 = trim($moy2) ;
        if (! preg_match("/^[0-9]+\.?[0-9]*$/",$moy2) ) {
          erreur("valre","la moyenne ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        
        if ($vri1=="") { $vri1 = $ect1*$ect1 ; } ;
        
        $vri1 = trim($vri1) ;
        if (! preg_match("/^[0-9]+\.?[0-9]*$/",$vri1) ) {
          erreur("valre","la variance ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($vri2=="") { $vri2 = $ect2*$ect2 ; } ;
        
        $vri2 = trim($vri2) ;
        if (! preg_match("/^[0-9]+\.?[0-9]*$/",$vri2) ) {
          erreur("valre","la variance ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        } ; # fin de si ok=1
        
        ############################################################
        #
        # v&eacute;rifions enfin que les nombres d'individus et les moyennes
        # ne sont pas nuls
        #
        ############################################################
        
        if ($ok==1) {
        
        if ($nbv1==0) {
          erreur("divnb","le nombre d'individus ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($nbv2==0) {
          erreur("divnb","le nombre d'individus ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($moy1==0) {
          erreur("divnb","la moyenne ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($moy2==0) {
          erreur("divnb","la moyenne ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        } ; # fin de si ok=1
        
        ############################################################
        #
        #    calculs v&eacute;ritables
        #
        ############################################################
        
        if ($ok==1) {
        
        $f_nbv1 = sprintf("%5d",$nbv1) ;
        $f_nbv2 = sprintf("%5d",$nbv2) ;
        
        $f_moy1 = sprintf("%7.3f",$moy1) ;
        $f_moy2 = sprintf("%7.3f",$moy2) ;
        
        $ect1   = sqrt($vri1) ;
        $ect2   = sqrt($vri2) ;
        $f_ect1 = sprintf("%7.3f",$ect1) ;
        $f_ect2 = sprintf("%7.3f",$ect2) ;
        
        $cdv1   = 100.0*($ect1/$moy1) ;
        $cdv2   = 100.0*($ect2/$moy2) ;
        $f_cdv1 = sprintf("%5.1f",$cdv1) ;
        $f_cdv2 = sprintf("%5.1f",$cdv2) ;
        
        $df = abs($moy1 - $moy2) ;
        $de = (($vri1/$nbv1) +  ($vri2/$nbv2)) ;
        $rd = sqrt($de) ;
        $dr = $df/$rd ;
        
        
        echo "<blockquote>" ;
        echo "<pre>" ;
        echo "\n" ;
        echo "\n" ;
        
        echo "<span class=\"gbleu\">";
        echo " Population 1 :\n";
        echo "</span>";
        echo "    $f_nbv1  individus\n" ;
        echo "           moyenne    $f_moy1\n" ;
        echo "           &eacute;cart-type $f_ect1\n" ;
        echo "           soit un cdv de $f_cdv1 %\n" ;
        echo "\n" ;
        
        echo "<span class=\"gbleu\">";
        echo " Population 2 :\n";
        echo "</span>";
        echo "    $f_nbv2  individus\n" ;
        echo "           moyenne    $f_moy2\n" ;
        echo "           &eacute;cart-type $f_ect2\n" ;
        echo "           soit un cdv de $f_cdv2 %\n" ;
        echo "\n" ;
        
        echo "\n" ;
        echo "<span class=\"vert\">";
        echo "  La valeur de l'&eacute;cart-r&eacute;duit est ".sprintf("%7.3f",$dr)."\n" ;
        echo "     au seuil de 5 % soit la valeur 1.96\n" ;
        echo "<span class=\"grouge\">";
        echo "     on " ;
        if ($dr<1.96) {  echo " ne" ; } ; # fin de si
        echo " peut" ;
        if ($dr<1.96) {  echo " pas" ; } ; # fin de si
        echo " rejeter" ;
        echo "</span>";
        echo " l'hypoth&egrave;se que les moyennes sont &eacute;gales.\n\n" ;
        echo "</span>";
        
        $pval = fonction_R("2*pnorm(-$dr)") ;
        if (strlen($pval)>0) {
          echo "  La p-value bilat&eacute;rale est sans doute $pval soit en arrondi ".sprintf("%5.3f",$pval) ;
        } ; # fin si
        
        echo "</pre>" ;
        
        retourCalcStat() ;
        
        echo "</blockquote>" ;
        
        
        } ; # fin de si ok=1
        
        } ; # fin fonction compMoy
        
        ###########################################################
        ###########################################################
        
        function compRoc() {
        
        ###########################################################
        ###########################################################
        
        echo "<h2>Comparaison d'AUROCS pour des &eacute;chantillons ind&eacute;pendants</h2>\n ";
        
        if (isset($_GET["auroc1"]))  { $auroc1  = $_GET["auroc1"] ; } ;
        if (isset($_POST["auroc1"])) { $auroc1  = $_POST["auroc1"] ; } ;
        
        if (isset($_GET["auroc2"]))  { $auroc2  = $_GET["auroc2"] ; } ;
        if (isset($_POST["auroc2"])) { $auroc2  = $_POST["auroc2"] ; } ;
        
        if (isset($_GET["se1"]))  { $se1  = $_GET["se1"] ; } ;
        if (isset($_POST["se1"])) { $se1  = $_POST["se1"] ; } ;
        
        if (isset($_GET["se2"]))  { $se2  = $_GET["se2"] ; } ;
        if (isset($_POST["se2"])) { $se2  = $_POST["se2"] ; } ;
        
        ## echo " $nbv1  $nbv2  $moy1  $moy2  $vri1  $vri2 \n" ;
        
        $ok = 1 ;
        
        ############################################################
        #
        # v&eacute;rifions que les 4 champs d'entr&eacute;e sont remplis
        #
        ############################################################
        
        if ($auroc1=="") {
          erreur("defnb","l'AUROC ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($auroc2=="") {
          erreur("defnb","l'AUROC ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($se1=="") {
          erreur("defnb","l'erreur standard ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($se2=="") {
          erreur("defnb","l'erreur standard ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        ############################################################
        #
        # v&eacute;rifions que les 2 moyennes et variances sont des r&eacute;els
        #
        ############################################################
        
        if ($ok==1) {
        
        $auroc1 = trim($auroc1) ;
        if (! preg_match("/^[0-9]+\.?[0-9]*$/",$auroc1) ) {
          erreur("valre","l'AUROC ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        $auroc2 = trim($auroc2) ;
        if (! preg_match("/^[0-9]+\.?[0-9]*$/",$auroc2) ) {
          erreur("valre","l'AUROC ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        $se1 = trim($se1) ;
        if (! preg_match("/^[0-9]+\.?[0-9]*$/",$se1) ) {
          erreur("valre","l'erreur standard ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        $se2 = trim($se2) ;
        if (! preg_match("/^[0-9]+\.?[0-9]*$/",$se2) ) {
          erreur("valre","l'erreur standard ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        } ; # fin de si ok=1
        
        ############################################################
        #
        # v&eacute;rifions enfin que les SE ne sont pas nulles
        #
        ############################################################
        
        if ($ok==1) {
        
        if ($se1==0) {
          erreur("divnb","l'erreur standard ",1) ;
          $ok = 0 ;
        } ; # fin de si
        
        if ($se2==0) {
          erreur("divnb","l'erreur standard ",2) ;
          $ok = 0 ;
        } ; # fin de si
        
        } ; # fin de si ok=1
        
        ############################################################
        #
        #    calculs v&eacute;ritables
        #
        ############################################################
        
        if ($ok==1) {
        
        $f_auroc1 = sprintf("%7.3f",$auroc1) ;
        $f_auroc2 = sprintf("%7.3f",$auroc2) ;
        
        $f_se1 = sprintf("%7.3f",$se1) ;
        $f_se2 = sprintf("%7.3f",$se2) ;
        
        $df = abs($auroc1 - $auroc2) ;
        $de = ($se1*$se1 + $se2*$se2) ;
        $rd = sqrt($de) ;
        $dr = $df/$rd ;
        
        echo "<blockquote>" ;
        echo "<pre>" ;
        echo "\n" ;
        echo "\n" ;
        
        echo "<span class=\"gbleu\">";
        echo " Echantillon 1 :\n";
        echo "</span>";
        echo "           AUROC   $f_auroc1\n" ;
        echo "           SEM     $f_se1\n" ;
        echo "\n" ;
        
        echo "<span class=\"gbleu\">";
        echo " Echantillon 2 :\n";
        echo "</span>";
        echo "           AUROC   $f_auroc2\n" ;
        echo "           SEM     $f_se2\n" ;
        echo "\n" ;
        
        echo "\n" ;
        echo "<span class=\"vert\">";
        echo "  La valeur de l'&eacute;cart-r&eacute;duit est ".sprintf("%7.3f",$dr)."\n" ;
        echo "     au seuil de 5 % soit la valeur 1.96\n" ;
        echo "<span class=\"grouge\">";
        echo "     on " ;
        if ($dr<1.96) {  echo " ne" ; } ; # fin de si
        echo " peut" ;
        if ($dr<1.96) {  echo " pas" ; } ; # fin de si
        echo " rejeter" ;
        echo "</span>";
        echo " l'hypoth&egrave;se que les moyennes sont &eacute;gales.\n\n" ;
        echo "</span>";
        
        $pval = fonction_R("2*pnorm(-$dr)") ;
        if (strlen($pval)>0) {
          echo "  La p-value bilat&eacute;rale est sans doute $pval soit en arrondi ".sprintf("%5.3f",$pval) ;
        } ; # fin si
        
        
        echo "</pre>" ;
        
        retourCalcStat() ;
        
        echo "</blockquote>" ;
        
        
        } ; # fin de si ok=1
        
        } ; # fin fonction compMoy
        
        ###########################################################
        
        function getData($opt="") { global $tvalent, $tige, $seuil, $uni,$ndlv ;
        
        ###########################################################
        
        # cette fonction r&eacute;cup&egrave;re les infos des formulaires
        
        # donn&eacute;es entr&eacute;es (textarea)
        
        $valent = "" ;
        if (isset($_GET["valent"]))  { $valent  = $_GET["valent"] ; } ;
        if (isset($_POST["valent"])) { $valent  = $_POST["valent"] ; } ;
        
        # nom de la variable
        if (isset($_POST["ndlv"]))   { $ndlv    = $_POST["ndlv"] ; } ;
        
        $ok = 1 ;
        
        if (strlen(trim($valent))==0) {
          erreur("datatige") ;
          $ok=0 ;
        } ; # fin de si
        
        if ($ok==1) {
        
           if ($opt=="tige") {
               $atige = "" ;
               if (isset($_GET["atige"]))  { $atige  = $_GET["atige"] ; } ;
               if (isset($_POST["atige"])) { $atige  = $_POST["atige"] ; } ;
               $atige = trim($atige) ;
               if (strlen($atige)>0 ) {
                  if (! preg_match("/^[0-9]+$/",$atige) ) {
                     erreur("tige",$atige) ;
                     $ok=0 ;
                  } ; # fin de si
               } ; # fin si
           } ; # fin si
        
           if ($opt=="gdr") {
               $seuil = "" ;
               if (isset($_GET["seuil"]))  { $seuil  = $_GET["seuil"] ; } ;
               if (isset($_POST["seuil"])) { $seuil  = $_POST["seuil"] ; } ;
               $seuil = trim($seuil) ;
               if (strlen($seuil)>0 ) {
                  if (!preg_match("/^[0-9]+$/",$seuil) ) {
                    erreur("seuil",$seuil) ;
                    $ok=0 ;
                  } ; # fin de si
               } ; # fin si
           } ; # fin si
        
        $uni = "unit&eacute;s" ;
        if (isset($_GET["und"]))  { $uni  = $_GET["und"] ; } ;
        if (isset($_POST["und"])) { $uni  = $_POST["und"] ; } ;
        
        } else {
          $valent = "" ;
        } ; # fin de si
        
        # si les donn&eacute;es sont entr&eacute;es en colonnes
        # il faut convertir \n en espace
        
        $walent  = strtr($valent, ";()\"\n'\\:?","           ") ;
        $walent  = strtr($valent, ",",".") ;
        $walent  = preg_replace("/\n/"," ",$walent) ;
        $walent  = preg_replace("/\r/"," ",$walent) ;
        $bvalent = preg_split("/\s+/",trim($walent)) ;
        
        ##print_r($bvalent) ;
        
        # on ne garde que les valeurs non vides
        # foreach ne convient pas car on peut avoir des valeurs &eacute;gales
        
        $tvalent = array() ;
        $nbv     = count($bvalent) ;
        for ($idv=0; $idv <$nbv ; $idv++) {
          $laval = $bvalent[$idv] ;
          if ($laval!="") { array_push($tvalent,$laval) ; } ;
        } ; # fin de pourchaque
        
        ##print_r($tvalent) ;
        
        } ; # fin fonction getData
        
        ###########################################################
        ###########################################################
        
        function tigef() { global $tvalent, $tige, $seuil, $uni ;
        
        ###########################################################
        ###########################################################
        
        $ok = 1 ;
        echo "<h2>Diagramme Tige et Feuille (stem and leaf)</h2> " ;
        
        # r&eacute;cup&eacute;ration des donn&eacute;es
        
        if (!isset($tige)) { $atige = 0 ; } ;
        getData("tige") ;
        
        $nbmd   = count( $tvalent )  ;
        $nbm    = 0 ;
        
        if ($nbmd>0) {
        
        $dval   = array() ; # pour php 4.x
        $dvalorg  = array() ; # pour php 4.x
        
        for ($im = 0 ; $im < $nbmd ; $im++) {
          $mot = trim($tvalent[ $im ])  ;
          if (strlen($mot)>0) {
             $nbm++ ;
             $dval[$nbm] = $mot ;
             $dvalorg[$nbm] = $mot ;
          } ; # fin de si
        } ; # fin de pour
        
        sort($dval) ;
        
        # calcul de la tige
        
        $vmin = $dval[0] ;
        $vmax = $dval[$nbm-1] ;
        
        $vdif = $vmax - $vmin ;
        if (strlen(trim($atige))==0) {
           $pdd  = 1 ;
           while ($pdd < $vdif) {
              $pdd = $pdd * 10 ;
           } ; # fin de tant que
           $atige = $pdd/10 ;
        } ; # fin de si
        
        if ($atige==0) { $atige =  10 ; } ;
        
        echo "<blockquote>" ;
        echo "<h3>Vos $nbm donn&eacute;es tri&eacute;es " ;
        echo " minimum=$vmin maximum=$vmax taille_tige=$atige " ;
        echo "</h3>" ;
        
        echo "<blockquote>" ;
        echo "<textarea cols='70' rows='10' class=\"tajaunec\">" ;
        
        for ($im = 0 ; $im < $nbm ; $im++) {
            echo $dval[$im]." " ;
        } ; # fin de pour
        
        echo "</textarea>" ;
        echo "</blockquote>" ;
        
        # trac&eacute;s
        
        echo "<h3>Trac&eacute; des valeurs tri&eacute;es</h3>" ;
        
        $ydval   = "" ;
        for ($idv = 0 ;$idv<$nbm ;$idv++) {
           $ydval .= $dval[$idv] ;
           if ($idv<$nbm-1){  $ydval .= "_" ; } ;
        } ; /* fin pour idv */
        #echo("img src='../traceydata.php?ydval=$ydval'");
        echo "<blockquote>" ;
        echo("<img src='../traceydata.php?ydval=$ydval' alt='graph' />");
        echo "</blockquote>" ;
        
        echo "<h3>Trac&eacute; des valeurs originales</h3>" ;
        
        $ydval   = "" ;
        for ($idv = 1 ;$idv<$nbm ;$idv++) {
           $ydval .= $dvalorg[$idv] ;
           if ($idv<$nbm-1){  $ydval .= "_" ; } ;
        } ; /* fin pour idv */
        #echo("img src='../traceydata.php?ydval=$ydval'");
        echo "<blockquote>" ;
        echo("<img src='../traceydata.php?ydval=$ydval' alt='graph' />");
        echo "</blockquote>" ;
        
        
        echo "<h3>Tige et feuille</h3>" ;
        
        
        $dtige =  0 ;                         /* d&eacute;part    */
        $ftige = round($vmax/$atige)*$atige ; /* fin       */
        
        /* d&eacute;termination des tiges */
        
        $vtige = array() ;  /* les valeurs de la tige */
        $btige = array() ;  /* la base de la tige */
        $ntige  = 0 ;/* indice de tige */
        $idm    = 1 ;    /* indice de mot */
        $tigec  = $dtige ;/* tige courante */
        
        while ($tigec <= $ftige) {
           $ltige = "" ;
           $tiges = $tigec + $atige  ; /* suivante */
           $motc  = $dval[$idm-1] ;
           while (($idm < $nbm) and ($motc<$tiges)) {
              $nval  = $motc - $tigec ;
              $ltige = "$ltige $nval" ;
              $idm   = $idm + 1 ;
              $motc  = $dval[$idm-1] ;
           } ; /* fin tant que */
           $ntige = $ntige + 1 ;
           $btige[$ntige] = $tigec ;
           $vtige[$ntige] = $ltige ;
           $tigec = $tiges ;
        } ; /* fin tant que */
        
        /* affichage par tige */
        
        echo "<blockquote>" ;
        echo "<pre class=\"tavert\">" ;
        echo "\n" ;
        echo "\n" ;
        echo "  Eff  Pct   Cumul   |  Tige  + Feuille\n" ;
        
        $cum = 0 ;
        $itige=1 ;
        $xm = "" ;
        $vd = "" ;
        $pf =  1 ; /* premi&egrave;re fois */
        while ($itige<= $ntige) {
           $digec = $btige[$itige] ;
           $tigec = $vtige[$itige] ;
           if (strlen(trim($tigec))==0) {
              $eff = 0 ;
           } else {
             $tmots = explode(" ",trim($tigec)) ;
             $eff   = count($tmots) ;
           } ; # fin de si
           $cum   = $cum + $eff ;
           $pct   = sprintf("%3d",round((100.0*($eff/$nbm)))) ;
           $pcu   = sprintf("%3d",round(100.0*($cum/$nbm))) ;
           $lsor  = sprintf("%5d",$eff)." $pct %  $pcu %   | ".sprintf("%5d",$digec)."  + $tigec   \n" ;
           if (($eff>0) and ($pf==1)) { $pf = 2 ; } ;
           if ((($eff==0) and ($pf>1) and($itige<$ntige)) or ($eff>0)) {
              echo $lsor ;
              $vd .= trim($pct) ;
              $xm .= $digec ;
              if ($itige<$ntige) { $vd .= "_" ; $xm .= "_" ; } ;
           } ; # fin de si
           $itige++ ;
        } ; /* fin pour itige */
        echo "\n" ;
        echo "</pre>" ;
        echo "</blockquote>" ;
        
        if (substr($vd,strlen($vd)-1,1) == "_") { $vd = substr($vd,0,strlen($vd)-1)  ; } ;
        if (substr($xm,strlen($xm)-1,1) == "_") { $xm = substr($xm,0,strlen($xm)-1)  ; } ;
        
        echo "<h3>Histogramme des tiges</h3>" ;
        
        echo "<blockquote>" ;
        $urlg = "../jphistopct.php?titr=&amp;vdata=$vd&amp;xmrks=$xm&amp;tailx=400&amp;tailx=600" ;
        echo "<img src=\"$urlg\" alt=\"histogramme\" />" ;
        echo "</blockquote>" ;
        
        # echo $urlg ;
        
        echo "<h3>Description statistique des valeurs</h3>" ;
        
        echo "<blockquote>" ;
        echo "<table width=\"800\">" ;
        echo "<tr><td>" ;
        echo "<pre class=\"tagris\">" ;
        echo "\n" ;
        
        decrit_QT($dval,$uni) ;
        
        echo "\n" ;
        echo "</pre>" ;
        echo "</td></tr>" ;
        echo "</table>" ;
        echo "</blockquote>" ;
        
        } else {
        
        echo "</blockquote>" ;
        echo "<blockquote>" ;
        echo "<blockquote>" ;
        
        } ; # fin si
        
        ###########################################################
        
        retourCalcStat() ;
        
        echo "</blockquote>" ;
        
        } ; # fin fonction tigef
        
        ###########################################################
        ###########################################################
        
        function chiDeux() {
        
        ###########################################################
        ###########################################################
        
        echo "<h2>Calcul du Chi-deux d'ind&eacute;pendance</h2> " ;
        
        } ; # fin fonction chiDeux
        
        ###########################################################
        ###########################################################
        
        function gdr() { global $tvalent, $seuil, $uni, $ydata  ;
        
        ###########################################################
        ###########################################################
        
        echo "<h2>D&eacute;coupage en classes, m&eacute;thode GDR </h2> " ;
        echo "<h2>(discr&eacute;tisation d'une variable QT -- quantitative)</h2> " ;
        
        pre() ;
        
        /* r&eacute;cup&eacute;ration des donn&eacute;es */
        
        getData("gdr") ;
        $nbmd   = count( $tvalent )  ;
        $nbm    = 0 ;
        $dval   = array() ; # pour php 4.x
        $nom    = array() ; # pour php 4.x
        
        for ($im = 0 ; $im < $nbmd ; $im++) {
          $mot = trim($tvalent[ $im ])  ;
          if (strlen($mot)>0) {
             $nbm++ ;
             $dval[$nbm] = $mot ;
             ##echo " $nbm $mot \n" ;
             $nom[$nbm-1] = "I".sprintf("%03d",$nbm) ;
          } ; # fin de si
        } ; # fin de pour
        sort($dval) ;
        
        # tracePoints($dval) ;
        
        /* r&eacute;sum&eacute; statistique */
        
        echo "\n" ;
        echo "<span class='vert'>" ;
        echo " Caract&eacute;ristiques des donn&eacute;es" ;
        echo "</span>" ;
        @decrit_QT($dval,$uni) ;
        
        flush() ;
        
        echo "<span class='vert'>Seuil de s&eacute;paration choisi : $seuil %</span>\n\n" ;
        
        /* calcul des diff&eacute;rences relatives */
        
        $somv  = 0 ;
        $tcum  = array() ;
        $tdif  = array() ;
        for ($idv = 0;$idv<$nbm;$idv++) {
           $jdv  = $idv - 1 ;
           $somv = $somv + $dval[$idv] ;
           if ($idv == 0) { $difv = 0 ; }
                     else { $difv = $dval[$idv] - $dval[$jdv] ; } ;
           $tcum[$idv]  = $somv ;
           $tdi[$idv ]  = $difv ;  /* tableau original */
           $tdif[$idv]  = $difv ;  /* tableau qui contiendra les valeurs tri&eacute;es */
           $nomD[$idv]  = $nom[$idv] ;
        } ; /* fin pour idv */
        
        /* et on trie en d&eacute;croissant le tableau des diff&eacute;rences  */
        
        for ($idv = 0 ; $idv <= $nbm-2 ; $idv++) {
            for ($jdv = $idv+1 ; $jdv <= $nbm-1; $jdv++) {
               $nomA = $nomD[$idv ] ;
               $difA = $tdif[$idv ] ;
               $nomB = $nomD[$jdv ] ;
               $difB = $tdif[$jdv ] ;
               if ($difB > $difA ) {
                  $nomD[$jdv]  = $nomA ;
                  $tdif[$jdv]  = $difA ;
                  $nomD[$idv]  = $nomB ;
                  $tdif[$idv]  = $difB ;
               } ; /* fin de la permutation de A et B */
           } ; /* fin pour jdv */
        } ; /* fin pour idv */
        
        # affichage de controle
        
        #for ($idv = 0 ; $idv < $nbm ; $idv++) {
        #  echo "$idv $nomD[$idv] $tdif[$idv]\n" ;
        #} ; /* fin pour idv */
        flush() ;
        
        /* ce qui permet de calculer les diff&eacute;rences normalis&eacute;es      */
        
        $tdr = array() ;
        for ($idv = 0 ; $idv < $nbm ; $idv++) {
           $difr = 100.*$tdi[$idv]/abs($tdif[0]) ;
           $tdr[$idv] = $difr ;
        } ; /* fin pour idv */
        
        /* disons que gecart=50 % constitue un grand &eacute;cart :                 */
        /* on marque alors o&ugrave; on pourrait d&eacute;finir une borne de classe */
        
        $gecart = $seuil ;
        
        $tborn   = array() ;
        $tclas   = array() ;
        $tdv     = array() ;
        $bsup    = array() ;
        
        $ncla    = 1 ;
        for ($idv = 0 ;$idv<$nbm ;$idv++) {
           $tborn[$idv] = " " ;
        } ; /* fin pour idv */
        $tborn[0] = "*" ;
        for ($idv = 0 ;$idv<$nbm ;$idv++) {
           $tclas[$idv]  = $ncla ;
           if (isset($tdv[$idv])) {
              $bsup[$ncla]  = $tdv[$idv] ;
           } ; /* finsi  */
        
           if ($tdr[$idv] >= $gecart) {
              $tborn[$idv] = "*" ;
              $ncla = $ncla + 1 ;
              $tclas[$idv] = $ncla ;
           } ; /* fin de nouvelle classe */
        } ; /* fin pour idv */
        
        flush() ;
        
        /* on affiche les donn&eacute;es tri&eacute;es  */
        
        echo " Num Classe     Nom       Valeur  |  Nom      Diff.Abs    Diff_%  \n" ;
        echo "                                  |  \n" ;
        
        for ($idv = 0 ;$idv<$nbm ;$idv++) {
           if ($tdr[$idv] >= $gecart) {
              echo "                                  |  \n" ;
           } ; # fin si
           $ligs  = sprintf("%4d",1+$idv)."  ".$tclas[$idv]."   ".$tborn[$idv] ;
           $ligs .= "     ".$nom[$idv]."    ".sprintf("%8.2f",$dval[$idv]) ;
           if ($idv==$nbm-1) {
              $ntdif = 0 ;
              $ntdr  = 0 ;
           } else  {
              $jdv = $idv + 1 ;
              $ntdif = $dval[$jdv] - $dval[$idv] ;
              $ntdr  = 100.0*$ntdif/$tdif[0] ;
           } ; # fin si
           $ligs .= "  |   ".$nom[$idv]."     ".sprintf("%5d",$ntdif)."   ".sprintf("%5.1f",$ntdr) ;
           echo "$ligs\n" ;
        } ; /* fin pour idv */
        
        flush() ;
        
        echo "\n" ;
        echo "\n" ;
        echo "<span class='vert'>" ;
        echo " Description des classes issues de la gestion des diff&eacute;rences \n" ;
        echo "</span>" ;
        echo "\n" ;
        echo " Numero  Borne_1    Borne_2    Effectif    Frequ_%   minimum  maximum\n" ;
        echo "\n" ;
        
        $tmin   = array() ;
        $tmax   = array() ;
        $eclas  = array() ; /* effectif */
        for ($idc = 1 ; $idc<= $ncla ; $idc++) {
             $tmin[$idc]  = $dval[$nbm-1] ;
             $tmax[$idc]  = $dval[0] ;
             $eclas[$idc] =  0 ;
        } ; /* fin pour idc */
        
        for ($idv = 0 ;$idv<$nbm ;$idv++) {
           $vdc = $tclas[$idv] ;
           if ($dval[$idv] < $tmin[$vdc]) {
               $tmin[$vdc] = $dval[$idv] ;
           } ; # fin de si
           if ($dval[$idv] > $tmax[$vdc]) {
               $tmax[$vdc] = $dval[$idv] ;
           } ; # fin de si
           $eclas[$vdc] =  $eclas[$vdc] + 1 ;
           ## echo "$idv $tclas[$idv] $vdc $tmin[$vdc] $tmax[$vdc]\n" ;
        } ; /* fin pour idv */
        
        
        for ($idc = 1 ; $idc<= $ncla ; $idc++) {
           $ligc = sprintf("%3d",$idc)."    " ;
           if ($idc==1) {
              $binf = $dval[0] ;
           } else {
              $jdc  = $idc-1  ;
              $binf = ($tmax[$jdc]+$tmin[$idc])/2 ;
           } ; # fin si
           $ligc = $ligc."    ".sprintf("%5.1f",$binf) ;
           if ($idc==$ncla) {
             $bsup = $dval[$nbm-1] ;
           } else {
             $jdc  = $idc+1 ;
             $bsup = ($tmax[$idc] + $tmin[$jdc])/2 ;
           } ; # fin si
           $ligc = $ligc."    ".sprintf("%5.1f",$bsup) ;
           $ligc .= "      ".sprintf("%4d",$eclas[$idc])."       ".sprintf("%5.1f",$eclas[$idc]*100/$nbm) ;
           $ligc .= "      ".sprintf("%6.2f",$tmin[$idc])."    ".sprintf("%6.2f",$tmax[$idc]) ;
           echo "$ligc\n" ;
        } ; /* finpour idc = 1 to nbcla  */
        
        echo "\n" ;
        echo "\n" ;
        echo "<span class='vert'>" ;
        echo " Trac&eacute; des donn&eacute;es sans indication de classe\n" ;
        echo "</span>" ;
        echo "\n" ;
        finpre() ;
        
        $ydval   = "" ;
        for ($idv = 0 ;$idv<$nbm ;$idv++) {
           $ydval .= $dval[$idv] ;
           if ($idv<$nbm-1){  $ydval .= "_" ; } ;
        } ; /* fin pour idv */
        
        echo("<img src='../traceydata.php?ydval=$ydval' alt='graph' />");
        
        pre() ;
        echo "\n" ;
        echo "\n" ;
        echo "<span class='vert'>" ;
        echo " Trac&eacute; des donn&eacute;es avec couleur de classe\n" ;
        echo "</span>" ;
        echo "\n" ;
        finpre() ;
        
        $clval   = "" ;
        for ($idv = 0 ;$idv<$nbm ;$idv++) {
           $clval .= $tclas[$idv] ;
           if ($idv<$nbm-1){  $clval .= "_" ; } ;
        } ; /* fin pour idv */
        
        echo("<img src='../traceydata.php?ydval=$ydval&amp;clval=$clval' alt='graph' />");
        
        } ; # fin fonction gdr
        
        ###########################################################
        
        function putData($fichier,$tableau) {
        
        ###########################################################
        
        # on &eacute;crit les donn&eacute;es du tableau dans le $fichier pour R
        
        $fh = fopen($fichier,"w") ;
        $nb = count( $tableau )  ;
        for ($iv = 0 ; $iv < $nb ; $iv++) {
          fputs($fh,$tableau[$iv]."\n") ;
        } ; # fin de pour
        fclose($fh) ;
        
        } ; # fin fonction putData
        
        ###########################################################
        
        function aqtdet() { global $tvalent, $uni, $ndlv ;
        
        ###########################################################
        
        $dbg = 0 ; /* mettre 0 en normal, 1 pour debug ou pour un affichage d&eacute;taill&eacute; en cours  */
        
        h2("Analyse d&eacute;taill&eacute;e d'une variable quantitative") ;
        
        blockquote() ;
        
        getData() ;
        
        if ($ndlv=="") { $ndlv = "sans_nom " ; } ;
        
        $ok = 1 ;
        
        # r&eacute;cup&eacute;ration des donn&eacute;es
        
        $nbmd     = count( $tvalent )  ;
        $nbm      = 0 ;
        $dval     = array() ; # pour php 4.x
        $dvalorg  = array() ; # pour php 4.x
        
        for ($im = 0 ; $im < $nbmd ; $im++) {
          $mot = trim($tvalent[ $im ])  ;
          if (strlen($mot)>0) {
             $nbm++ ;
             $dval[$nbm] = $mot ;
             $dvalorg[$nbm] = $mot ;
          } ; # fin de si
        } ; # fin de pour
        
        sort($dval) ;
        
        if ($nbm==0) { finblockquote() ; return ; } ;
        
        # affichage des donn&eacute;es
        
        if (strlen($uni)>0) { $lunite = "(unit&eacute; : $uni)" ; } ;
        
        h3("Vos $nbm donn&eacute;es tri&eacute;es $lunite pour la variable $ndlv") ;
        
        blockquote() ;
        textarea("dval","tajaunec",'7','120') ;
        for ($im = 0 ; $im < $nbm ; $im++) {
            echo $dval[$im]." " ;
        } ; # fin de pour
        fintextarea() ;
        finblockquote() ;
        
        # pr&eacute;paration des noms de fichier
        
        $fd     = "aqt_det.data" ;
        $ficdat = tempnam("/tmp/",$fd) ;
        putData($ficdat,$dval) ;
        $fg1     = "aqt_det_graph1" ;
        $fg2     = "aqt_det_graph2" ;
        $ficgr1 = tempnam("../wtmp/",$fg1) ;
        $ficgr2 = tempnam("../wtmp/",$fg2) ;
        $png1   = "$ficgr1.png" ;
        $png2   = "$ficgr2.png" ;
        
        $pdwtmp = strpos($ficgr1,"/wtmp") ;
        $fdn1 = substr($ficgr1,$pdwtmp) ;
        $fdn2 = substr($ficgr2,$pdwtmp) ;
        $fpng1 = "..$fdn1.png" ;
        $fpng2 = "..$fdn2.png" ;
        
        if ($dbg==1) {
           pre() ;
              echo "ficdat est : $ficdat\n" ;
              echo "ficgr1 est : $ficgr1\n" ;
              echo "pdwtmp vaut $pdwtmp\n" ;
              echo "fin de nom est donc : $fdn1\n" ;
              echo "soit, en relatif : $fpng1 et $fpng2\n" ;
           finpre() ;
        } ; # fin si
        
        # structure des r&eacute;sultats : un tableau avec
        #   en colonne gauche : les calculs
        #   en colonne droite : les graphiques
        
        table(0,10) ;
        tr() ;
           td("valigntop")  ; h3("R&eacute;sum&eacute;s statistiques") ; fintd() ;
           td("valigntop")  ; h3("Graphiques cliquables") ;  fintd() ;
        fintr() ;
        tr() ; td("L","valigntop") ;
        
        # calculs stat via execute_R de statuno.php
        
        $tcmdR = array() ;
        $nbcmd = -1 ;
        
        $nbcmd++ ; $tcmdR[$nbcmd] = "  source(\"statgh.r\") \n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  lesd <- read.table(\"$ficdat\") \n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  attach(lesd) \n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  vqtGH <- V1\n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  cat(\"STAT_DEB\n\")\n" ;
        #$nbcmd++ ; $tcmdR[$nbcmd] = "  cat(\"\nVoici vos donn&eacute;es: \")\n" ;
        #$nbcmd++ ; $tcmdR[$nbcmd] = "  print(vqtGH) \n" ;
        #$nbcmd++ ; $tcmdR[$nbcmd] = "  cat(\"et leur analyse: \")\n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  dtQT(\"DataWeb\",vqtGH,\"$uni\",TRUE,\"$png1\",\"$png2\") \n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  cat(\"STAT_FIN\n\")\n" ;
        
        if ($dbg==1) {
          p() ;
           echo " on utilise la fonction ".b("execute_R()")." avec comme param&egrave;tre le tableau suivant&nbsp;" ;
          finp() ;
          pre() ;
            print_r($tcmdR) ;
          finpre() ;
        } ; # fin si
        
        pre() ;
          execute_R($tcmdR,$dbg) ; # la fonction execute_R est dans statuno.php
        finpre() ;
        
        # fin de l'affichage des calculs
        
        pvide() ;
        fintd() ;
        td("L","valigntop") ;
        
        p("center") ;
        echo href($fpng1,img($fpng1,"png1",600)) ;
        finp() ;
        
        p("center") ;
        echo href($fpng2,img($fpng2,"png2",600)) ;
        finp() ;
        fintd() ; fintr() ; fintable() ;
        
        if ($dbg==1) {
          p() ;
           echo " fin des calculs et graphiques dans ".b("aqtdet()")."." ;
          finp() ;
        } ; # fin si
        
        finblockquote() ;
        
        } ; # fin fonction aqtdet
        
        ###########################################################
        
        function smax() { global $tvalent, $uni, $ndlv ;
        
        ###########################################################
        
        error_reporting(E_ALL | E_NOTICE ) ;
        
        h2("Indice de fiabilit&eacute; d'une variable quantitative") ;
        
        blockquote() ;
        
        getData() ;
        
        $bornea = "" ;
        $borneb = "" ;
        if (isset($_POST["bornea"])) { $bornea = $_POST["bornea"] ; } ;
        if (isset($_POST["borneb"])) { $borneb = $_POST["borneb"] ; } ;
        
        if ($ndlv=="") { $ndlv = "sans_nom " ; } ;
        
        if (($bornea=="") or ($borneb=="")) {
          h3("Vous n'avez pas donn&eacute; les bornes de l'intervalle. Calcul impossible.") ;
          finblockquote() ;
          return ;
        } ; # fin si
        
        $ok = 1 ;
        
        # r&eacute;cup&eacute;ration des donn&eacute;es
        
        /*
        pre() ;
        print_r($tvalent) ;
        finpre() ;
        */
        
        $nbmd     = count( $tvalent )  ;
        $nbm      = 0 ;
        $dval     = array()   ; # pour php 4.x
        $dvalorg  = array()   ; # pour php 4.x
        
        for ($im = 0 ; $im < $nbmd ; $im++) {
          $mot = trim($tvalent[ $im ])  ;
          if (strlen($mot)>0) {
             $nbm++ ;
             $dval[$nbm] = $mot ;
             $dvalorg[$nbm] = $mot ;
          } ; # fin de si
        } ; # fin de pour
        
        sort($dval) ;
        
        if ($nbm==0) { finblockquote() ; return ; } ;
        
        # affichage des donn&eacute;es
        
        if (strlen($uni)>0) { $lunite = "$uni" ; } else { $lunite = "?" ; } ;
        
        h3("Vos $nbm donn&eacute;es tri&eacute;es unit&eacute; : $lunite pour la variable $ndlv") ;
        
        blockquote() ;
        textarea("dval","tajaunec",'7','120') ;
        for ($im = 0 ; $im < $nbm ; $im++) {
            echo $dval[$im]." " ;
        } ; # fin de pour
        fintextarea() ;
        finblockquote() ;
        
        h3("Plage de variation : borne inf&eacute;rieure = $bornea ; borne sup&eacute;rieure $borneb ") ;
        $smax = fonction_R("sdmax($nbm ,$bornea , $borneb) ") ;
        
        h3("Ecart-type maximum sur [ $bornea ; $borneb ] avec $nbm valeurs : $smax") ;
        $phr  = "" ;
        $phr .= "Indice de fiabilit&eacute; (100-rapport ecart-type des donn&eacute;es sur &eacute;cart-maximum) : " ;
        
        h3($phr) ;
        
        # pr&eacute;paration des noms de fichier
        
        $fd     = "smax.data" ;
        $ficdat = tempnam("/tmp/",$fd) ;
        putData($ficdat,$dval) ;
        
        # calculs stat via execute_R de statuno.php
        
        $tcmdR = array() ;
        $nbcmd = -1 ;
        
        $nbcmd++ ; $tcmdR[$nbcmd] = "  # essai de source pour statgh.web.r encoding=latin1 \n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  source(\"statgh.web.r\",encoding='latin1') \n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  lesd <- read.table(\"$ficdat\") \n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  attach(lesd) \n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  vqtGH <- V1\n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  cat(\"STAT_DEB\\n\")\n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  cat(ifiab(vqtGH,$bornea , $borneb),\" %\n\")\n" ;
        $nbcmd++ ; $tcmdR[$nbcmd] = "  cat(\"STAT_FIN\\n\")\n" ;
        
        pre("cadre") ;
        execute_R($tcmdR,0) ;
        finpre() ;
        
        # fin de l'affichage des calculs
        
        
        finblockquote() ;
        
        } ; # fin fonction smax
        
        ###########################################################
        
        ?>
        

La coloration syntaxique est réalisée par : SyntaxHighlighter.

Si vous préférez, vous pouvez utiliser celle de geshi ou même celle construite autour de la fonction highlight_file.

 

 

retour gH    Retour à la page principale de   (gH)