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é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> à la page des calculs" ; echo "</center>" ; } ; # function retourCalcStat ########################################################### ########################################################### function erreur( $typErr,$lnb="",$pop=0 ) { ########################################################### ########################################################### if ($typErr=="calcul") { echo " <h2> calcul demandé inconnu !</h2>" ; echo " ce que vous cherchez est probablement <a href=\"calcstat.htm\">ici</a>\n" ; } ; # fin si erreur sur le calcul à 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éel\n" ; } ; # fin si sur pop echo "</h2>\n" ; echo "</blockquote>\n" ; } ; # fin si erreur sur type des nb ré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 être nul \n" ; } ; # fin si sur pop echo "</h2>\n" ; echo "</blockquote>\n" ; } ; # fin si erreur sur nb nul comme dé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 être un nombre entier strictement positif et vous avez " ; echo " donné la valeur <br />\n \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érale de Pourcentages </h2> " ; echo "<h2> (é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érifions que les 4 champs d'entrée sont remplis # ############################################################ if ($ni1=="") { erreur("defnb","le nombre d'individus marqué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é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érifions que les 4 champs d'entrée sont des entiers # ############################################################ if (! preg_match("/^[0-9]+$/",$ni1) ) { erreur("valnb","le nombre d'individus marqué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é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é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é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é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é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éunit les deux populations, on obtient \n" ; echo "</span>"; echo " $f_ni individus marqué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'écart-ré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èse que les pourcentages sont égaux.\n\n" ; echo "</span>"; $pval = fonction_R("2*pnorm(-$ecre)") ; if (strlen($pval)>0) { echo " La p-value bilatérale est sans doute $pval soit en arrondi ".sprintf("%5.3f",$pval) ; } ; # fin si echo "</pre>" ; # un histogramme peut aider à visualiser, donc : $q1 = 100 - $p1 ; $q2 = 100 - $p2 ; $ti = "&xmrks=marqu%E9s_non%20marqu%E9s" ; $src1 = "../jphistopct.php?vdata=$p1"."_"."$q1"."&titr=%20POPULATION%201$ti" ; $src1i = "$src1&tailx=300&taily=200" ; $src2 = "../jphistopct.php?vdata=$p2"."_"."$q2"."&titr=%20POPULATION%202$ti" ; $src2i = "$src2&tailx=300&taily=200" ; echo "<table cellpadding=\"50\">\n" ; echo "<tr> \n" ; echo "<td> \n" ; echo "<a href=\"$src1\"><img src=\"$src1i\" alt=\"histogramme série 1\" /></a> \n" ; echo "</td> \n" ; echo "<td> \n" ; echo "<a href=\"$src1\"><img src=\"$src2i\" alt=\"histogramme série 2\" /></a> \n" ; echo "</td> \n" ; echo "</tr> \n" ; echo "</table> \n" ; # on affiche les syntaxe R et Sas pour ces données : echo "<p class=\"texte\"> \n" ; echo " Si vous disposez du logiciel gratuit <a href=\"../tuteurs/tutrstat.htm\">R</a>, vous pouvez vérifier ces calculs \n" ; echo " à l'aide de l'expression : \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 é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érifier ces calculs \n" ; echo " à l'aide des instructions : \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é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ées des deux exemples\n" ; echo " de démonstration.\n" ; echo "</p>" ; retourCalcStat() ; echo "</blockquote>" ; } ; # fin de si ok=1 } ; # fin fonction compPct ########################################################### ########################################################### function compMoy() { ########################################################### ########################################################### echo "<h2>Comparaison bilatérale de Moyennes </h2> " ; echo "<h2> (échantillons GAUSSIENS indépendants)</h2> " ; echo "<h2> (variances connues et supposées é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érifions que les 6 champs d'entré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é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érifions que les 2 moyennes et variances sont des ré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é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é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 " é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 " é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'écart-ré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èse que les moyennes sont égales.\n\n" ; echo "</span>"; $pval = fonction_R("2*pnorm(-$dr)") ; if (strlen($pval)>0) { echo " La p-value bilaté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 échantillons indé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érifions que les 4 champs d'entré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érifions que les 2 moyennes et variances sont des ré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é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é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'écart-ré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èse que les moyennes sont égales.\n\n" ; echo "</span>"; $pval = fonction_R("2*pnorm(-$dr)") ; if (strlen($pval)>0) { echo " La p-value bilaté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écupère les infos des formulaires # données entré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és" ; if (isset($_GET["und"])) { $uni = $_GET["und"] ; } ; if (isset($_POST["und"])) { $uni = $_POST["und"] ; } ; } else { $valent = "" ; } ; # fin de si # si les données sont entré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 é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écupération des donné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ées trié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és echo "<h3>Tracé des valeurs trié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é 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épart */ $ftige = round($vmax/$atige)*$atige ; /* fin */ /* dé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è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=&vdata=$vd&xmrks=$xm&tailx=400&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épendance</h2> " ; } ; # fin fonction chiDeux ########################################################### ########################################################### function gdr() { global $tvalent, $seuil, $uni, $ydata ; ########################################################### ########################################################### echo "<h2>Découpage en classes, méthode GDR </h2> " ; echo "<h2>(discrétisation d'une variable QT -- quantitative)</h2> " ; pre() ; /* récupération des donné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ésumé statistique */ echo "\n" ; echo "<span class='vert'>" ; echo " Caractéristiques des données" ; echo "</span>" ; @decrit_QT($dval,$uni) ; flush() ; echo "<span class='vert'>Seuil de séparation choisi : $seuil %</span>\n\n" ; /* calcul des diffé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ées */ $nomD[$idv] = $nom[$idv] ; } ; /* fin pour idv */ /* et on trie en décroissant le tableau des diffé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érences normalisé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 écart : */ /* on marque alors où on pourrait dé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ées trié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é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é des donné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é des donné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&clval=$clval' alt='graph' />"); } ; # fin fonction gdr ########################################################### function putData($fichier,$tableau) { ########################################################### # on écrit les donné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étaillé en cours */ h2("Analyse détaillée d'une variable quantitative") ; blockquote() ; getData() ; if ($ndlv=="") { $ndlv = "sans_nom " ; } ; $ok = 1 ; # récupération des donné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ées if (strlen($uni)>0) { $lunite = "(unité : $uni)" ; } ; h3("Vos $nbm données trié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é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ésultats : un tableau avec # en colonne gauche : les calculs # en colonne droite : les graphiques table(0,10) ; tr() ; td("valigntop") ; h3("Résumé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é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ètre le tableau suivant " ; 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é 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é les bornes de l'intervalle. Calcul impossible.") ; finblockquote() ; return ; } ; # fin si $ok = 1 ; # récupération des donné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ées if (strlen($uni)>0) { $lunite = "$uni" ; } else { $lunite = "?" ; } ; h3("Vos $nbm données triées unité : $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érieure = $bornea ; borne supé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é (100-rapport ecart-type des données sur écart-maximum) : " ; h3($phr) ; # pré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 à la page principale de (gH)