Valid XHTML     Valid CSS2    

Listing du fichier perf3.php

 

00001     <?php
00002     #   # (gH)   -_-  perf3.php  ;  TimeStamp (unix) : 17 Septembre 2014 vers 16:51
00003     
00004     error_reporting
(E_ALL E_NOTICE E_STRICT) ;
00005     
00006     include_once("std7.php"
) ;
00007     include_once("perf_inc.php"
) ;
00008     include_once("../../statuno7.php"
) ;
00009     
00010     $R 
s_span("R","gbleuf") ;
00011     
00012     $numSerie 
;
00013     debutPageExoScr1
($numSerie) ;
00014     
00015     ## -------------------------------------------------------------------------------------------
00016     
00017     sdl
(3) ; echo cmt(' pour afficher toutes les solutions : intror1.php?solutions=1') ; sdl(3) ;
00018     
00019     ## -------------------------------------------------------------------------------------------
00020     
00021     p
("texte") ;
00022     echo "" 
;
00023     finp
() ;
00024     debutSection
() ;
00025     
00026     $tableauDesRubriques 
= array() ;
00027     $idr 
;
00028     $idr
++; $tableauDesRubriques[$idr] = "Notion de r&eacute;gression (simple, multiple, lin&eacute;aire, logistique)" ;
00029     $idr
++; $tableauDesRubriques[$idr] = "R&eacute;gression ".vert("lin&eacute;aire")." simple" ;
00030     $idr
++; $tableauDesRubriques[$idr] = "R&eacute;gression ".vert("lin&eacute;aire").noir(" multiple") ;
00031     $idr
++; $tableauDesRubriques[$idr] = "R&eacute;gression ".rouge("logistique")." simple" ;
00032     $idr
++; $tableauDesRubriques[$idr] = "R&eacute;gression ".rouge("logistique").noir(" multiple") ;
00033     #$idr++; $tableauDesRubriques[$idr] = "Fonctions $R en s&eacute;lection de variables et validation de mod&egrave;le" ;
00034     #$idr++; $tableauDesRubriques[$idr] = "Analyse des r&eacute;sidus et pr&eacute;dictions en r&eacute;gression via $R" ;
00035     $tdmCRLM 
= new tdm($tableauDesRubriques) ;
00036     $tdmCRLM
->titre() ;
00037     $tdmCRLM
->menu("oui","oui","nou") ;
00038     
00039     pvide
() ;
00040     
00041     p
() ;
00042      echo "Il est possible d'afficher toutes les solutions via "
.href("perf3.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou")." " ;
00043      echo " et de toutes les masquer avec via "
.href("perf3.php?solutions=0","?solutions=0","bouton_fin orange_pastel nou").". " ;
00044     finp
() ;
00045     
00046     finSection
() ;
00047     
00048     debutSection
() ;
00049     $numExo 
;
00050     
00051     ## -------------------------------------------------------------------------------------------
00052     
00053     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Notion de r&eacute;gression (simple, multiple, lin&eacute;aire, logistique)
00054     
00055     ## -------------------------------------------------------------------------------------------
00056     
00057     blockquote
() ;
00058     
00059     blockquote
() ;
00060     
00061     p
("texte") ;
00062     echo "Comment effectue-t-on une r&eacute;gression en R&nbsp;? Quelles sont les principales fonctions g&eacute;n&eacute;riques&nbsp;?" 
;
00063     finp
() ;
00064     
00065     finblockquote
() ;
00066     
00067     solution
($numExo,$numSerie) ;
00068     
00069     p
("texte") ;
00070       echo "Pour r&eacute;aliser une r&eacute;gression lin&eacute;aire en R, on utilise la fonction " 
;
00071       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/lm.html","lm") ;
00072       echo " avec l'op&eacute;rateur ~ " 
;
00073       echo "("
.href("http://finzi.psych.upenn.edu/R/library/base/html/tilde.html","tilde").")" ;
00074       echo " alors qu'une r&eacute;gression logistique passe par la fonction " 
;
00075       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/glm.html","glm") ;
00076       echo "." 
;
00077     finp
() ;
00078     
00079     p
("texte") ;
00080       echo "La fonction lm renvoie une liste avec entre autres les variables suivantes : " 
;
00081     finp
() ;
00082     
00083     blockquote
() ;
00084     table
(1,"3","collapse") ;
00085        stat_Et_R
(" \$coefficients  "," estimation des coefficients ") ;
00086        stat_Et_R
(" \$fitted.values "," les valeurs calcul&eacute;es pour chaque y") ;
00087        stat_Et_R
(" \$residuals     "," les r&eacute;sidus (diff&eacute;rences entre valeurs originales et valeurs estim&eacute;es)") ;
00088     fintable
() ;
00089     finblockquote
() ;
00090     
00091     p
("texte") ;
00092        echo "Si on &eacute;crit "
.b("print(ml)")." o&ugrave; ml est le r&eacute;sultat d'une fonction ".em("lm")." ou ".em("glm").", " ;
00093        echo " on n'obtient que les coefficients de la r&eacute;gression. Pour avoir le d&eacute;tail de la r&eacute;gression, il faut utiliser " 
;
00094        echo b
("summary(ml)")." et " ;
00095        echo b
("confint(ml)") ;
00096        echo " pour avoir les intervalles de confiance des coefficients de la r&eacute;gression. " 
;
00097        echo "Les fonctions correspondantes sont : " 
;
00098        echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/summary.lm.html","summary.lm") ;
00099        echo " et " 
;
00100        echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/summary.glm.html","summary.glm") ;
00101        echo " car " 
;
00102        echo href
("http://finzi.psych.upenn.edu/R/library/base/html/summary.html","summary") ;
00103        echo " est une fonction g&eacute;n&eacute;rique qui peut s'appliquer &agrave; de nombreux objets. " 
;
00104        echo "On peut ensuite pr&eacute;dire de nouvelles valeurs avec la fonction " 
;
00105        echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/predict.html","predict") ;
00106        echo " qui est une aussi fonction g&eacute;n&eacute;rique qui se d&eacute;cline en " 
;
00107        echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/predict.lm.html","predict.lm") ;
00108        echo " et " 
;
00109        echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/predict.glm.html","predict.glm") ;
00110        echo "." 
;
00111     finp
() ;
00112     
00113     p
("texte") ;
00114     
00115        echo " La partie graphique est tr&egrave;s importante pour les r&eacute;gressions. Pour une r&eacute;gression lin&eacute;aire, apr&egrave;s un " 
;
00116        echo href
("http://finzi.psych.upenn.edu/R/library/graphics/html/plot.html","plot") ;
00117        echo " &eacute;l&eacute;mentaire des donn&eacute;es, un " 
;
00118        echo href
("http://finzi.psych.upenn.edu/R/library/graphics/html/abline.html","abline") ;
00119        echo " du mod&egrave;le trace la droite de r&eacute;gression. " 
;
00120        echo " A la suite d'une r&eacute;gression, la fonction " 
;
00121        echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/plot.lm.html","plot.lm") ;
00122        echo " produit 6 graphiques pour analyser la qualit&eacute; de la r&eacute;gression, dont seuls 4 sont affich&eacute;s par d&eacute;faut, " 
;
00123        echo " rep&eacute;r&eacute;s ci-dessous par une &eacute;toile&nbsp;:" 
;
00124        #echo " et pour une r&eacute;gression simple ".b("Y&nbsp;~&nbsp;X").", ".b("plot(X,Y)")." suivi de ".b("abline(lm(Y~X))")." permet de tracer " ;
00125        #echo " la droite de r&eacute;gression sur le graphique des points (X,Y)." ;
00126     finp
() ;
00127     blockquote
() ;
00128     table
(1,"3","collapse") ;
00129        num_stat_Et_R
("  "," x "," y ") ;
00130        num_stat_Et_R
(1,"* Fitted values","Residuals") ;
00131        num_stat_Et_R
(2,"* Theoretical quantiles","Standardized residuals") ;
00132        num_stat_Et_R
(3,"* Fitted values","Root of standardized residuals") ;
00133        num_stat_Et_R
(4,"&nbsp; Observation number","Cook's distance") ;
00134        num_stat_Et_R
(5,"* Leverage","Standardized residuals") ;
00135        num_stat_Et_R
(6,"&nbsp; Leverage h<sub>n</sub>","Cook's distance") ;
00136     fintable
() ;
00137     finblockquote
() ;
00138     p
("texte") ;
00139       echo "Enfin, signalons qu'avec "
.b("predict")." et ".b("matlines")." il est possible de tracer " ;
00140       echo " l'intervalle de confiance de la droite et l'intervalle de confiance des pr&eacute;visons. " 
;
00141       # mettre un lien sur traceReglinIC de statgh.r ?
00142     finp
() ;
00143     
00144     
00145     
00146     finsolution
() ;
00147     
00148     finblockquote
() ;
00149     
00150     ## -------------------------------------------------------------------------------------------
00151     
00152     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; #  R&eacute;gression lin&eacute;aire simple
00153     
00154     ## -------------------------------------------------------------------------------------------
00155     
00156     blockquote
() ;
00157     
00158     blockquote
() ;
00159     
00160     p
("texte") ;
00161       echo "Apr&egrave;s avoir vu la documentation de la fonction " 
;
00162       echo hrrr
("lm","stats") ;
00163       echo " du package " 
;
00164       echo hrrp
("stats") ;
00165       echo " essayer de r&eacute;aliser la "
;
00166       echo " mod&eacute;lisation par une relation lin&eacute;aire la d&eacute;pendance entre la variable consommation d'essence et la variable distance parcourue " 
;
00167       echo " dans le jeu de donn&eacute;es "
.href("km.dar")." (sans transformation des donn&eacute;es). " ;
00168     finp
() ;
00169     
00170     p
("texte") ;
00171       echo "Dans quel ordre doit-on lire les r&eacute;sultats &nbsp;? Faut-il regarder en premier le R"
.sup("2").", la p-value de F, les coefficients&nbsp;?" ;
00172     finp
() ;
00173     
00174     p
("texte") ;
00175       echo "Y a-t-il des repr&eacute;sentations graphiques associ&eacute;es&nbsp;?" 
;
00176       echo " Pourquoi y a-t-il 4 graphiques produits avec "
.b("plot(lm(modele))")." alors qu'on pourrait en avoir 6&nbsp;?" ;
00177       echo " Comment obtenir les 6 trac&eacute;s&nbsp;? A quoi correspondent-ils&nbsp;?" 
;
00178     finp
() ;
00179     
00180     p
("texte") ;
00181     echo " Faut-il envisager une relation de causalit&eacute;&nbsp;?" 
;
00182     echo " Quelles sont les valeurs pr&eacute;dites par le mod&egrave;le pour "
.b("100")." et ".b("250")." km&nbsp;?" ;
00183     echo " Quelle est l'augmentation de la consommation si la distance augmente de 1 km&nbsp;?"
;
00184     finp
() ;
00185     
00186     finblockquote
() ;
00187     
00188     solution
($numExo,$numSerie) ;
00189     
00190     p
("texte") ;
00191     echo "Rappel : pour d&eacute;finir un mod&egrave;le lin&eacute;aire avec R, il faut utiliser la fonction " 
;
00192     echo hrrr
("lm","stats")." et la droite correspondante se trace directement avec " ;
00193     echo hrrr
("abline","graphics").". Pour afficher le mod&egrave;le, on peut utiliser les fonctions g&eacute;n&eacute;riques " ;
00194     echo hrrr
("summary","base")." et " ;
00195     echo hrrr
("coef","stats").". " ;
00196     finp
() ;
00197     
00198     entree_R
("km.r") ;
00199     sortie_R
("km_sor.txt") ;
00200     graphique_R_png
("km.png",500) ;
00201     
00202     p
("texte") ;
00203       echo "Il est d'usage de commencer par regarder si le mod&egrave;le est significativement diff&eacute;rent de z&eacute;ro dans les sorties de "
.b("summary()")." " ;
00204       echo" gr&acirc;ce &agrave; la p-value du test de Fisher. Si cette p-value est sup&eacute;rieure &agrave; 0,05 &laquo;"
.b("le mod&egrave;le ne vaut rien")."&raquo;. " ;
00205       echo " Si le mod&egrave;le est significativement diff&eacute;rent de z&eacute;ro, on peut s'int&eacute;resser directement au coefficient de d&eacute;termination en r&eacute;gression " 
;
00206       echo " lin&eacute;aire simple. Par contre en r&eacute;gression lin&eacute;aire multiple, il faut regarder les p-values des coefficients pour envisager une s&eacute;lection " 
;
00207       echo " de variables avant d'utiliser le coefficient de d&eacute;termination ajust&eacute;. " 
;
00208     finp
() ;
00209     
00210     p
("texte") ;
00211     
00212       echo " Ici, le mod&egrave;le est significativement diff&eacute;rent de z&eacute;ro (p=4.393e-08&lt;&lt;0,05) " 
;
00213       echo " et on peut donc dire ici que la consommation est d'environ 0,08332 litre par km, ou, pour parler plus couramment, d'environ 8,332 litre \"aux 100\". " 
;
00214       echo " Donc si la distance augmente d'un km, la consommation augmente de 0,008332 litre. Par contre il ne faut pas m&eacute;sestimer le terme constant, soit ici 3,53 l qui " 
;
00215       echo " doit correspondre au premier d&eacute;marrage de la voiture (il s'agit de ma propre voiture, une XM et il ne faut pas rouler tant que le syst&eacute;me hydraulique n'est pas " 
;
00216       echo " op&eacute;rationnel, donc tant que la voiture n'est pas en \"position haute\", ce qui dure au moins 30 secondes...) et &agrave; la consommation pendant l'arr&ecirc;t. " 
;
00217       echo " Cette constante sera d'autant plus importante que la distance est effectu&eacute;e en ville, &agrave; cause des stops et des feux rouges, mais il est clair que ces " 
;
00218       echo " interpr&eacute;tations ne sont pas statistiques et font appel &agrave; des connaissances contextuelles li&eacute;es aux donn&eacute;es." 
;
00219       echo " Le mod&egrave;le est un \"tr&egrave;s bon mod&egrave;le\" puisque le coefficient de d&eacute;termination vaut 0.97 (donc tr&egrave;s proche de 1)." 
;
00220     finp
() ;
00221     
00222     p
("texte") ;
00223     echo "Dans la mesure o&ugrave; un mod&egrave;le lin&eacute;aire est [presque] toujours calculable, il est important de savoir si la mod&eacute;lisation est significativement non nulle, c'est-&agrave;-dire " 
;
00224     echo " si on peut accepter le mod&egrave;le. C'est pour cela qu'il faut utiliser le test de Fisher (de l'analyse de la variance) appliqu&eacute; au mod&egrave;le, et ensuite  regarder le coefficient " 
;
00225     echo " de corr&eacute;lation lin&eacute;aire. Il ne faut pas accorder une confiance aveugle &agrave; ces tests, qui peuvent &ecirc;tre mis en d&eacute;faut notamment pour de petits " 
;
00226     echo " &eacute;chantillons. " 
# , comme le montre le fameux jeu de donn&eacute;es ".href("../../Datasets/anscombe.htm","anscombe").". " ;
00227     echo 
" On doit donc syst&eacute;matiquement r&eacute;aliser une ".b("analyse des r&eacute;sidus").", ce qui peut souvent se r&eacute;duire &agrave; des trac&eacute;s diagnostics que fournit la fonction " ;
00228     echo hrrr
("plot.lm","stats")." du package ".hrrp("stats").". " ;
00229     echo " C'est ce qui explique que R fournit 6 trac&eacute;s (dont 4 seulement par d&eacute;faut) pour "
.b("plot.lm(modele)")." qui est &eacute;quivalent &agrave; ".b("plot(lm(modele))").". " ;
00230     finp
() ;
00231     
00232     p
("texte") ;
00233       echo "Pour obtenir les 6 trac&eacute;s, il faut utiliser le param&egrave;tre "
.b("which")."&nbsp;:" ;
00234     finp
() ;
00235     
00236     entree_R
("kmres.r") ;
00237     
00238     blockquote
() ;
00239      TroisGraphiquesEn_R_png
("kmdiagno_1.png","kmdiagno_2.png","kmdiagno_3.png") ;
00240      TroisGraphiquesEn_R_png
("kmdiagno_4.png","kmdiagno_5.png","kmdiagno_6.png") ;
00241     finblockquote
() ;
00242     
00243     p
("texte") ;
00244       echo "Les graphiques obtenus se nomment "
.b("trac&eacute;s de diagnostic du mod&egrave;le")." et viennent " ;
00245       echo " analyser les r&eacute;sidus, les points-leviers, les outliers..." 
;
00246       echo " Ici par exemple, les trois premiers graphiques montrent que les trajets 3, 6 et 10 " 
;
00247       echo " semblent ne pas bien &ecirc;tre en accord avec le mod&egrave;le." 
;
00248     finp
() ;
00249     
00250     
00251     p
("texte") ;
00252       echo "Avec la fonction "
.b("predict()")." appliqu&eacute;e &agrave; un ".em("data frame")." avec les m&ecirc;mes noms de variables, " ;
00253       echo " on peut utiliser le mod&egrave;le lin&eacute;aire pour pr&eacute;dire de nouvelles valeurs&nbsp;:" 
;
00254     finp
() ;
00255     
00256     entree_R
("kmpred.r") ;
00257     sortie_R
("kmpred_sor.txt") ;
00258     
00259     blockquote
() ;
00260     p
() ;
00261       nbsp
(10 );
00262       $img 
"kmpreds.png" ;
00263       echo href
($img,img($img,"kmpreds",400)) ;
00264     finp
() ;
00265     finblockquote
() ;
00266     
00267     p
("texte") ;
00268       echo "Il y a bien s&ucirc;r ici une relation de "
.b("causalit&eacute;").", la cause &eacute;tant la distance et l'effet &eacute;tant la consommation, ce que l'on peut " ;
00269       echo " r&eacute;sumer par "
.b("plus on roule, plus on consomme").". " ;
00270     finp
() ;
00271     
00272     finsolution
() ;
00273     
00274     finblockquote
() ;
00275     
00276     ## -------------------------------------------------------------------------------------------
00277     
00278     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; #  R&eacute;gression lin&eacute;aire multiple
00279     
00280     ## -------------------------------------------------------------------------------------------
00281     
00282     blockquote
() ;
00283     
00284     blockquote
() ;
00285     
00286     p
("texte") ;
00287       echo "Effectuez une premi&egrave;re RLM (R&eacute;gression Lin&eacute;aire Multiple de LN_NID en fonction de  ALT, PENTE, HAUT et DIAM, puis une seconde en utilisant seulement " 
;
00288       echo " ALT, PENTE et HAUT, puis une troisi&egrave;me avec ALT, PENTE et DIAM dans le dossier "
.href("chenilles.dar.txt","CHENILLES").". " ;
00289     finp
() ;
00290     
00291     p
("texte") ;
00292       echo " Y a-t-il une diff&eacute;rence " 
;
00293       echo " au niveau du signe des coefficients calcul&eacute;s&nbsp;? " 
;
00294     finp
() ;
00295     p
("texte") ;
00296       echo " Quel est le meilleur de ces trois mod&egrave;les&nbsp;? " 
;
00297       echo " Faut-il distinguer le meilleur mod&egrave;le "
.b("pr&eacute;dictif")." du meilleur mod&egrave;le ".b("explicatif")."&nbsp;?" ;
00298     finp
() ;
00299     
00300     p
("texte") ;
00301       echo " Que peut-on en conclure sur l'"
.vert("influence de la colin&eacute;arit&eacute; des variables dans une RLM")."&nbsp;? " ;
00302       #echo " On distinguera l'aspect ".em("explicatif")." de l'aspect ".em("pr&eacute;dictif")."." ;
00303     finp
() ;
00304     
00305     p
("texte") ;
00306     echo "Comment demander &agrave; R de calculer le meilleur mod&egrave;le pour LN_NID &agrave; partir des quatre variables" 
;
00307     echo " ALT, PENTE, HAUT et DIAM&nbsp;?" 
;
00308     finp
() ;
00309     
00310     finblockquote
() ;
00311     
00312     solution
($numExo,$numSerie) ;
00313     
00314     p
("texte") ;
00315       echo "Voici le code R pour r&eacute;aliser les r&eacute;gressions demand&eacute;es&nbsp;:" 
;
00316     finp
() ;
00317     
00318     entree_R
("chenilles1.r") ;
00319     
00320     p
("texte") ;
00321       echo "Et les r&eacute;sultats correspondants&nbsp;:" 
;
00322     finp
() ;
00323     
00324     sortie_R
("chenilles1.res") ;
00325     
00326     p
("texte") ;
00327       echo "Si on compare les mod&egrave;les 1 et 3, on remarque le coefficient de DIAM est positif avec le mod&egrave;le 1 (valeur 0.283) " 
;
00328       echo " mais n&eacute;gatif avec le mod&egrave;le 3 (valeur -0.006). Compte-tenu de la corr&eacute;lation entre les varables (d&eacute;taill&eacute;e ci-dessous), " 
;
00329       echo " le coefficient devrait &ecirc;tre n&eacute;gatif." 
;
00330       echo " C'est sans doute la colin&eacute;arit&eacute; entre HAUT et DIAM (r=0.905) qui cause cette \"instabilit&eacute;\" de coefficient." 
;
00331     finp
() ;
00332     
00333     p
("texte") ;
00334      echo " Le meilleur mod&egrave;le pr&eacute;dictif de ces trois mod&egrave;les est le premier, parce que son R"
.sup("2")." ajust&eacute; est le plus " ;
00335      echo " &eacute;lev&eacute; (0.5967 "
.em("vs")." 0.4190 et 0.3605)." ;
00336     finp
() ;
00337     
00338     p
("texte") ;
00339      echo " Malheureusement, ce mod&egrave;le 1 est sans doute incorrect, &agrave; cause du signe de DIAM." 
;
00340     finp
() ;
00341     
00342     p
("texte") ;
00343        echo " Le meilleur mod&egrave;le explicatif est certainement le mod&egrave;le 2." 
;
00344     finp
() ;
00345     
00346     blockquote
() ;
00347     p
() ;
00348       nbsp
(10 );
00349       $img 
"chen3modeles.png" ;
00350       echo href
($img,img($img,"chen3modeles",400)) ;
00351     finp
() ;
00352     finblockquote
() ;
00353     
00354     p
("texte") ;
00355        echo " L'&eacute;tude de la corr&eacute;lation entre les variables, y compris la \"cible\" LN_NID et la r&eacute;gression en fonction de chaque variable s&eacute;par&eacute;ment " 
;
00356        echo " peut s'obtenir par&nbsp;:" 
;
00357     finp
() ;
00358     
00359     entree_R
("chencoeff.r") ;
00360     sortie_R
("chencoeff.res") ;
00361     
00362     blockquote
() ;
00363     p
() ;
00364       nbsp
(10 );
00365       $img 
"chenpairs1.png" ;
00366       echo href
($img,img($img,"chenpairs1",300)) ;
00367       nbsp
(10 );
00368       $img 
"chenpairs2.png" ;
00369       echo href
($img,img($img,"chenpairs2",300)) ;
00370     finp
() ;
00371     finblockquote
() ;
00372     
00373     p
("texte") ;
00374     echo "Le dernier graphique montre une tendance n&eacute;gative pour la liaison entre DIAM et LN_NID, d'o&ugrave; notre remarque " 
;
00375     echo" sur le mod&egrave;le 1." 
;
00376     finp
() ;
00377     
00378     p
("texte") ;
00379     echo "La fonction " 
;
00380     echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/step.html","step()") ;
00381     echo " permet de d&eacute;terminer le meilleur mod&egrave;le par s&eacute;lection ascendante et descendante de variables&nbsp;:" 
;
00382     finp
() ;
00383     
00384     entree_R
("step1.r") ;
00385     sortie_R
("step1.res") ;
00386     
00387     finsolution
() ;
00388     
00389     finblockquote
() ;
00390     
00391     ## -------------------------------------------------------------------------------------------
00392     
00393     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # R&eacute;gression logistique simple
00394     
00395     ## -------------------------------------------------------------------------------------------
00396     
00397     blockquote
() ;
00398     
00399     blockquote
() ;
00400     
00401     p
("texte") ;
00402       echo "R&eacute;aliser la r&eacute;gression de la variable "
.b("binaire")." de ".href("http://fr.wikipedia.org/wiki/Cardiopathie_coronarienne","cardiopathie coronarienne") ;
00403       echo " ("
.href("http://en.wikipedia.org/wiki/Coronary_disease","CHD69").") &agrave; l'aide de la seule variable AGE dans le dossier " ;
00404       echo href
("http://finzi.psych.upenn.edu/R/library/epitools/html/wcgs.html","WCGS")."." ;
00405     finp
() ;
00406     p
("texte") ;
00407       echo " Quel est le rapport de c&ocirc;te pour une augmentation de l'age d'un an ? Et pour 10 ans ?" 
;
00408     finp
() ;
00409     p
("texte") ;
00410       echo " Quelle est la probabilit&eacute; d'avoir l'&eacute;v&egrave;nement pour une personne de 55 ans ? " 
;
00411     finp
() ;
00412     
00413     p
("texte") ;
00414      echo "Donn&eacute;es&nbsp;:&nbsp; &nbsp;"
.href("wcgs.dar").". " ;
00415     finp
() ;
00416     
00417     
00418     finblockquote
() ;
00419     
00420     solution
($numExo,$numSerie) ;
00421     
00422     
00423     p
("texte") ;
00424       echo "Commen&ccedil;ons par regarder les variables CHD69 et AGE s&eacute;par&eacute;ment puis conjointement." 
;
00425     finp
() ;
00426     
00427     entree_R
("wcgs1.rent")    ;
00428     sortie_R
("wcgs1.sortie")  ;
00429     graphiques_R_png
("wcgs_chd.png","wcgs_age.png") ;
00430     
00431     p
() ;
00432       nbsp
(10 );
00433       $img 
"wcgs1.png" ;
00434       echo href
($img,img($img,"wcgs1",600)) ;
00435     finp
() ;
00436     
00437     p
("texte") ;
00438       echo "On peut en conclure que pour les donn&eacute;es pr&eacute;sent&eacute;es, l'AGE est assez homog&egrave;ne (cdv=12&nbsp;%), peu &eacute;tendu et non normal, et que la CHD " 
;
00439       echo " est assez peu pr&eacute;sente (8&nbsp;%), avec une diff&eacute;rence significative selon l'age (p&lt;&lt;0,0001)." 
;
00440     finp
() ;
00441     
00442     p
("texteInterligneDouble") ;
00443       echo "R&eacute;alisons maintenant la r&eacute;gression logistique de la variable CHD69 (binaire) &agrave; l'aide de la seule variable AGE (continue) &agrave; " 
;
00444       echo " l'aide de la fonction " 
;
00445       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/glm.html","glm") ;
00446       echo " et dont les r&eacute;sultats peuvent &ecirc;tre consult&eacute;s via la fonction " 
;
00447       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/summary.glm.html","summary.glm") ;
00448       echo ". Comme il est d'usage de rapporter la " 
;
00449       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/logLik.html","log-vraisemblance") ;
00450       echo " du mod&egrave;le, les intervalles de confiance des coefficients,  " 
;
00451       echo " le rapport de vraisemblance (LR) et le R<sup>2</sup>, nous utilisons, en plus des fonctions " 
;
00452       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/confint.html","confint") ;
00453       echo " et " 
;
00454       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/logLik.html","logLik") ;
00455       echo " du package &eacute;l&eacute;mentaire " 
;
00456       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/00Index.html","stats") ;
00457       echo " les fonctions " 
;
00458       echo href
("http://finzi.psych.upenn.edu/R/library/MASS/html/confint.html","confint.glm") ;
00459       echo " et " 
;
00460       echo href
("http://finzi.psych.upenn.edu/R/library/Design/html/lrm.html","lrm") ;
00461       echo " des packages " 
;
00462       echo href
("http://finzi.psych.upenn.edu/R/library/MASS/html/00Index.html","MASS") ;
00463       echo " et " 
;
00464       echo href
("http://finzi.psych.upenn.edu/R/library/Design/html/00Index.html","Design") ;
00465       echo " qui fournissent directement ces valeurs. " 
;
00466       echo b
("Remarque")." : la fonction classique " ;
00467       echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/anova.html","anova") ;
00468       echo " fournit aussi le LR (qu'elle nomme "
.em("Deviance").")." ;
00469     finp
() ;
00470     
00471     entree_R
("wcgs2.rent")  ;
00472     sortie_R
("wcgs2.sortie")  ;
00473     
00474     p
("texte") ;
00475       echo "Le rapport de c&ocirc;te p/(1-p) pour une augmentation de l'age d'un an s'obtient en prenant l'exponentielle du coefficient " 
;
00476       echo " &beta;<sub>1</sub>, soit ici exp(0.074*1) qui vaut &agrave; peu pr&egrave;s 1,077 ; pour 10 ans, c'est exp(0.074*10) soit 2,105. " 
;
00477     finp
() ;
00478     
00479     p
("texte") ;
00480       echo "La probabilit&eacute; d'avoir un trouble coronarien pour une personne de 55 ans se calcule avec la fonction logistique : " 
;
00481     finp
() ;
00482     
00483     pre
("cadre") ;
00484       echo "p(55) = exp(-5.940+0.074*55)/(1 + exp(-5.940+0.074*55)) = 0.1335417"
;
00485     finpre
() ;
00486     
00487     finsolution
() ;
00488     
00489     finblockquote
() ;
00490     
00491     ## -------------------------------------------------------------------------------------------
00492     
00493     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; #  R&eacute;gression logistique multiple
00494     
00495     
00496     ## -------------------------------------------------------------------------------------------
00497     
00498     blockquote
() ;
00499     
00500     blockquote
() ;
00501     
00502     p
("texte") ;
00503       echo "R&eacute;alisez la r&eacute;gression de la variable de "
.href("http://fr.wikipedia.org/wiki/Cardiopathie_coronarienne","cardiopathie coronarienne") ;
00504       echo " ("
.href("http://en.wikipedia.org/wiki/Coronary_disease","CHD69").") &agrave; l'aide des 5 variables " ;
00505       echo " age, chol, sbp, bmi et smoke dans le dossier WCGS"
.". " ;
00506     finp
() ;
00507     
00508     p
("texte") ;
00509     echo "Quel est le meilleur mod&egrave;le&nbsp;?" 
;
00510     finp
() ;
00511     
00512     finblockquote
() ;
00513     
00514     solution
($numExo,$numSerie) ;
00515     
00516     
00517     p
("texte") ;
00518     echo "Voici, sans explication superflue, le code et les r&eacute;sultats&nbsp;:" 
;
00519     finp
() ;
00520     
00521     entree_R
("wcgs5.r")  ;
00522     sortie_R
("wcgs5.res")  ;
00523     
00524     blockquote
() ;
00525     p
() ;
00526       nbsp
(10 );
00527       $img 
"wcgs_pairs1.png" ;
00528       echo href
($img,img($img,"wcgs_pairs 1",400)) ;
00529     finp
() ;
00530     finblockquote
() ;
00531     
00532     entree_R
("wcgs6.r")  ;
00533     sortie_R
("wcgs6.res")  ;
00534     
00535     blockquote
() ;
00536     p
() ;
00537       nbsp
(10 );
00538       $img 
"wcgs_pairs2.png" ;
00539       echo href
($img,img($img,"wcgs_pairs 2",400)) ;
00540     finp
() ;
00541     finblockquote
() ;
00542     
00543     p
("texte") ;
00544     echo "La fonction " 
;
00545     echo href
("http://finzi.psych.upenn.edu/R/library/stats/html/step.html","step()") ;
00546     echo " permet aussi de d&eacute;terminer le meilleur mod&egrave;le par s&eacute;lection ascendante et descendante de " 
;
00547     echo " variables pour les mod&egrave;les lin&eacute;iares g&eacute;n&eacute;ralis&eacute;svariables&nbsp;:" 
;
00548     finp
() ;
00549     
00550     entree_R
("step2.r") ;
00551     sortie_R
("step2.res") ;
00552     
00553     finsolution
() ;
00554     
00555     finblockquote
() ;
00556     
00557     /*
00558     
00559     ## -------------------------------------------------------------------------------------------
00560     
00561     $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; #  Fonctions R en s&eacute;lection de variables et validation de mod&egrave;le
00562     
00563     
00564     ## -------------------------------------------------------------------------------------------
00565     
00566     blockquote() ;
00567     
00568     blockquote() ;
00569     
00570     p("texte") ;
00571     echo "Que trouve-ton dans les packages ".b("stats")." et ".b("graphics") ;
00572     echo " comme fonction qui permettent de calculer et de tracer conjointement des s&eacute;ries de donn&eacute;es&nbsp;?" ;
00573     finp() ;
00574     
00575     p("texte") ;
00576     echo "D&eacute;tailler ce qui est calcul&eacute; et trac&eacute; dans les diff&eacute;rentes analyses propos&eacute;es &agrave; la page " ;
00577     echo href("http://forge.info.univ-angers.fr/~gh/Leadb/index.php?action=12&amp;mode=0","LEAPdb Statistical analysis").". " ;
00578     finp() ;
00579     
00580     finblockquote() ;
00581     
00582     solution($numExo,$numSerie) ;
00583     
00584     p("texte") ;
00585     echo "" ;
00586     finp() ;
00587     
00588     finsolution() ;
00589     
00590     finblockquote() ;
00591     
00592     ## -------------------------------------------------------------------------------------------
00593     
00594     $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; #  Analyse des r&eacute;sidus et pr&eacute;dictions en r&eacute;gression via R
00595     
00596     
00597     ## -------------------------------------------------------------------------------------------
00598     
00599     blockquote() ;
00600     
00601     blockquote() ;
00602     
00603     p("texte") ;
00604     echo "Que trouve-ton dans les packages ".b("stats")." et ".b("graphics") ;
00605     echo " comme fonction qui permettent de calculer et de tracer conjointement des s&eacute;ries de donn&eacute;es&nbsp;?" ;
00606     finp() ;
00607     
00608     p("texte") ;
00609     echo "D&eacute;tailler ce qui est calcul&eacute; et trac&eacute; dans les diff&eacute;rentes analyses propos&eacute;es &agrave; la page " ;
00610     echo href("http://forge.info.univ-angers.fr/~gh/Leadb/index.php?action=12&amp;mode=0","LEAPdb Statistical analysis").". " ;
00611     finp() ;
00612     
00613     finblockquote() ;
00614     
00615     solution($numExo,$numSerie) ;
00616     
00617     p("texte") ;
00618     echo "" ;
00619     finp() ;
00620     
00621     finsolution() ;
00622     
00623     finblockquote() ;
00624     
00625     */
00626     
00627     ## -------------------------------------------------------------------------------------------
00628     
00629     finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans perf_inc.php
00630     
00631     ?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)