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
= 3 ;
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
= 0 ;
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
= 0 ;
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)