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égression (simple, multiple, linéaire, logistique)" ;
00029 $idr++; $tableauDesRubriques[$idr] = "Régression ".vert("linéaire")." simple" ;
00030 $idr++; $tableauDesRubriques[$idr] = "Régression ".vert("linéaire").noir(" multiple") ;
00031 $idr++; $tableauDesRubriques[$idr] = "Régression ".rouge("logistique")." simple" ;
00032 $idr++; $tableauDesRubriques[$idr] = "Régression ".rouge("logistique").noir(" multiple") ;
00033 #$idr++; $tableauDesRubriques[$idr] = "Fonctions $R en sélection de variables et validation de modèle" ;
00034 #$idr++; $tableauDesRubriques[$idr] = "Analyse des résidus et prédictions en ré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égression (simple, multiple, linéaire, logistique)
00054
00055 ## -------------------------------------------------------------------------------------------
00056
00057 blockquote() ;
00058
00059 blockquote() ;
00060
00061 p("texte") ;
00062 echo "Comment effectue-t-on une régression en R ? Quelles sont les principales fonctions génériques ?" ;
00063 finp() ;
00064
00065 finblockquote() ;
00066
00067 solution($numExo,$numSerie) ;
00068
00069 p("texte") ;
00070 echo "Pour réaliser une régression liné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érateur ~ " ;
00073 echo "(".href("http://finzi.psych.upenn.edu/R/library/base/html/tilde.html","tilde").")" ;
00074 echo " alors qu'une ré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ées pour chaque y") ;
00087 stat_Et_R(" \$residuals "," les résidus (différences entre valeurs originales et valeurs estimées)") ;
00088 fintable() ;
00089 finblockquote() ;
00090
00091 p("texte") ;
00092 echo "Si on écrit ".b("print(ml)")." où ml est le résultat d'une fonction ".em("lm")." ou ".em("glm").", " ;
00093 echo " on n'obtient que les coefficients de la régression. Pour avoir le détail de la ré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é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énérique qui peut s'appliquer à de nombreux objets. " ;
00104 echo "On peut ensuite pré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énérique qui se dé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ès importante pour les régressions. Pour une régression linéaire, après un " ;
00116 echo href("http://finzi.psych.upenn.edu/R/library/graphics/html/plot.html","plot") ;
00117 echo " élémentaire des données, un " ;
00118 echo href("http://finzi.psych.upenn.edu/R/library/graphics/html/abline.html","abline") ;
00119 echo " du modèle trace la droite de régression. " ;
00120 echo " A la suite d'une ré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é de la régression, dont seuls 4 sont affichés par défaut, " ;
00123 echo " repérés ci-dessous par une étoile :" ;
00124 #echo " et pour une régression simple ".b("Y ~ X").", ".b("plot(X,Y)")." suivi de ".b("abline(lm(Y~X))")." permet de tracer " ;
00125 #echo " la droite de ré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," Observation number","Cook's distance") ;
00134 num_stat_Et_R(5,"* Leverage","Standardized residuals") ;
00135 num_stat_Et_R(6," 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é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égression linéaire simple
00153
00154 ## -------------------------------------------------------------------------------------------
00155
00156 blockquote() ;
00157
00158 blockquote() ;
00159
00160 p("texte") ;
00161 echo "Aprè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éaliser la ";
00166 echo " modélisation par une relation linéaire la dépendance entre la variable consommation d'essence et la variable distance parcourue " ;
00167 echo " dans le jeu de données ".href("km.dar")." (sans transformation des données). " ;
00168 finp() ;
00169
00170 p("texte") ;
00171 echo "Dans quel ordre doit-on lire les résultats ? Faut-il regarder en premier le R".sup("2").", la p-value de F, les coefficients ?" ;
00172 finp() ;
00173
00174 p("texte") ;
00175 echo "Y a-t-il des représentations graphiques associées ?" ;
00176 echo " Pourquoi y a-t-il 4 graphiques produits avec ".b("plot(lm(modele))")." alors qu'on pourrait en avoir 6 ?" ;
00177 echo " Comment obtenir les 6 tracés ? A quoi correspondent-ils ?" ;
00178 finp() ;
00179
00180 p("texte") ;
00181 echo " Faut-il envisager une relation de causalité ?" ;
00182 echo " Quelles sont les valeurs prédites par le modèle pour ".b("100")." et ".b("250")." km ?" ;
00183 echo " Quelle est l'augmentation de la consommation si la distance augmente de 1 km ?";
00184 finp() ;
00185
00186 finblockquote() ;
00187
00188 solution($numExo,$numSerie) ;
00189
00190 p("texte") ;
00191 echo "Rappel : pour définir un modèle liné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èle, on peut utiliser les fonctions géné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èle est significativement différent de zéro dans les sorties de ".b("summary()")." " ;
00204 echo" grâce à la p-value du test de Fisher. Si cette p-value est supérieure à 0,05 «".b("le modèle ne vaut rien")."». " ;
00205 echo " Si le modèle est significativement différent de zéro, on peut s'intéresser directement au coefficient de détermination en régression " ;
00206 echo " linéaire simple. Par contre en régression linéaire multiple, il faut regarder les p-values des coefficients pour envisager une sélection " ;
00207 echo " de variables avant d'utiliser le coefficient de détermination ajusté. " ;
00208 finp() ;
00209
00210 p("texte") ;
00211
00212 echo " Ici, le modèle est significativement différent de zéro (p=4.393e-08<<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ésestimer le terme constant, soit ici 3,53 l qui " ;
00215 echo " doit correspondre au premier démarrage de la voiture (il s'agit de ma propre voiture, une XM et il ne faut pas rouler tant que le systéme hydraulique n'est pas " ;
00216 echo " opérationnel, donc tant que la voiture n'est pas en \"position haute\", ce qui dure au moins 30 secondes...) et à la consommation pendant l'arrêt. " ;
00217 echo " Cette constante sera d'autant plus importante que la distance est effectuée en ville, à cause des stops et des feux rouges, mais il est clair que ces " ;
00218 echo " interprétations ne sont pas statistiques et font appel à des connaissances contextuelles liées aux données." ;
00219 echo " Le modèle est un \"très bon modèle\" puisque le coefficient de détermination vaut 0.97 (donc très proche de 1)." ;
00220 finp() ;
00221
00222 p("texte") ;
00223 echo "Dans la mesure où un modèle linéaire est [presque] toujours calculable, il est important de savoir si la modélisation est significativement non nulle, c'est-à-dire " ;
00224 echo " si on peut accepter le modèle. C'est pour cela qu'il faut utiliser le test de Fisher (de l'analyse de la variance) appliqué au modèle, et ensuite regarder le coefficient " ;
00225 echo " de corrélation linéaire. Il ne faut pas accorder une confiance aveugle à ces tests, qui peuvent être mis en défaut notamment pour de petits " ;
00226 echo " échantillons. " ; # , comme le montre le fameux jeu de données ".href("../../Datasets/anscombe.htm","anscombe").". " ;
00227 echo " On doit donc systématiquement réaliser une ".b("analyse des résidus").", ce qui peut souvent se réduire à des tracé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és (dont 4 seulement par défaut) pour ".b("plot.lm(modele)")." qui est équivalent à ".b("plot(lm(modele))").". " ;
00230 finp() ;
00231
00232 p("texte") ;
00233 echo "Pour obtenir les 6 tracés, il faut utiliser le paramètre ".b("which")." :" ;
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és de diagnostic du modèle")." et viennent " ;
00245 echo " analyser les ré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 être en accord avec le modèle." ;
00248 finp() ;
00249
00250
00251 p("texte") ;
00252 echo "Avec la fonction ".b("predict()")." appliquée à un ".em("data frame")." avec les mêmes noms de variables, " ;
00253 echo " on peut utiliser le modèle linéaire pour prédire de nouvelles valeurs :" ;
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ûr ici une relation de ".b("causalité").", la cause étant la distance et l'effet étant la consommation, ce que l'on peut " ;
00269 echo " ré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égression linéaire multiple
00279
00280 ## -------------------------------------------------------------------------------------------
00281
00282 blockquote() ;
00283
00284 blockquote() ;
00285
00286 p("texte") ;
00287 echo "Effectuez une première RLM (Régression Liné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è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érence " ;
00293 echo " au niveau du signe des coefficients calculés ? " ;
00294 finp() ;
00295 p("texte") ;
00296 echo " Quel est le meilleur de ces trois modèles ? " ;
00297 echo " Faut-il distinguer le meilleur modèle ".b("prédictif")." du meilleur modèle ".b("explicatif")." ?" ;
00298 finp() ;
00299
00300 p("texte") ;
00301 echo " Que peut-on en conclure sur l'".vert("influence de la colinéarité des variables dans une RLM")." ? " ;
00302 #echo " On distinguera l'aspect ".em("explicatif")." de l'aspect ".em("prédictif")."." ;
00303 finp() ;
00304
00305 p("texte") ;
00306 echo "Comment demander à R de calculer le meilleur modèle pour LN_NID à partir des quatre variables" ;
00307 echo " ALT, PENTE, HAUT et DIAM ?" ;
00308 finp() ;
00309
00310 finblockquote() ;
00311
00312 solution($numExo,$numSerie) ;
00313
00314 p("texte") ;
00315 echo "Voici le code R pour réaliser les régressions demandées :" ;
00316 finp() ;
00317
00318 entree_R("chenilles1.r") ;
00319
00320 p("texte") ;
00321 echo "Et les résultats correspondants :" ;
00322 finp() ;
00323
00324 sortie_R("chenilles1.res") ;
00325
00326 p("texte") ;
00327 echo "Si on compare les modèles 1 et 3, on remarque le coefficient de DIAM est positif avec le modèle 1 (valeur 0.283) " ;
00328 echo " mais négatif avec le modèle 3 (valeur -0.006). Compte-tenu de la corrélation entre les varables (détaillée ci-dessous), " ;
00329 echo " le coefficient devrait être négatif." ;
00330 echo " C'est sans doute la colinéarité entre HAUT et DIAM (r=0.905) qui cause cette \"instabilité\" de coefficient." ;
00331 finp() ;
00332
00333 p("texte") ;
00334 echo " Le meilleur modèle prédictif de ces trois modèles est le premier, parce que son R".sup("2")." ajusté est le plus " ;
00335 echo " élevé (0.5967 ".em("vs")." 0.4190 et 0.3605)." ;
00336 finp() ;
00337
00338 p("texte") ;
00339 echo " Malheureusement, ce modèle 1 est sans doute incorrect, à cause du signe de DIAM." ;
00340 finp() ;
00341
00342 p("texte") ;
00343 echo " Le meilleur modèle explicatif est certainement le modè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'étude de la corrélation entre les variables, y compris la \"cible\" LN_NID et la régression en fonction de chaque variable séparément " ;
00356 echo " peut s'obtenir par :" ;
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égative pour la liaison entre DIAM et LN_NID, d'où notre remarque " ;
00375 echo" sur le modè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éterminer le meilleur modèle par sélection ascendante et descendante de variables :" ;
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égression logistique simple
00394
00395 ## -------------------------------------------------------------------------------------------
00396
00397 blockquote() ;
00398
00399 blockquote() ;
00400
00401 p("texte") ;
00402 echo "Réaliser la ré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").") à 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ô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é d'avoir l'évènement pour une personne de 55 ans ? " ;
00411 finp() ;
00412
00413 p("texte") ;
00414 echo "Données : ".href("wcgs.dar").". " ;
00415 finp() ;
00416
00417
00418 finblockquote() ;
00419
00420 solution($numExo,$numSerie) ;
00421
00422
00423 p("texte") ;
00424 echo "Commençons par regarder les variables CHD69 et AGE séparé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ées présentées, l'AGE est assez homogène (cdv=12 %), peu étendu et non normal, et que la CHD " ;
00439 echo " est assez peu présente (8 %), avec une différence significative selon l'age (p<<0,0001)." ;
00440 finp() ;
00441
00442 p("texteInterligneDouble") ;
00443 echo "Réalisons maintenant la régression logistique de la variable CHD69 (binaire) à l'aide de la seule variable AGE (continue) à " ;
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ésultats peuvent être consulté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è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 élé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ôte p/(1-p) pour une augmentation de l'age d'un an s'obtient en prenant l'exponentielle du coefficient " ;
00476 echo " β<sub>1</sub>, soit ici exp(0.074*1) qui vaut à peu prè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é 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égression logistique multiple
00494
00495
00496 ## -------------------------------------------------------------------------------------------
00497
00498 blockquote() ;
00499
00500 blockquote() ;
00501
00502 p("texte") ;
00503 echo "Réalisez la ré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").") à 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èle ?" ;
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ésultats :" ;
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éterminer le meilleur modèle par sélection ascendante et descendante de " ;
00547 echo " variables pour les modèles linéiares généralisésvariables :" ;
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élection de variables et validation de modè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éries de données ?" ;
00573 finp() ;
00574
00575 p("texte") ;
00576 echo "Détailler ce qui est calculé et tracé dans les différentes analyses proposées à la page " ;
00577 echo href("http://forge.info.univ-angers.fr/~gh/Leadb/index.php?action=12&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ésidus et prédictions en ré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éries de données ?" ;
00606 finp() ;
00607
00608 p("texte") ;
00609 echo "Détailler ce qui est calculé et tracé dans les différentes analyses proposées à la page " ;
00610 echo href("http://forge.info.univ-angers.fr/~gh/Leadb/index.php?action=12&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 à la page principale de (gH)