{"id":1492,"date":"2015-09-03T10:00:07","date_gmt":"2015-09-03T14:00:07","guid":{"rendered":"http:\/\/bioinfo.iric.ca\/?p=1492"},"modified":"2017-04-30T16:26:10","modified_gmt":"2017-04-30T20:26:10","slug":"nignorez-pas-les-avertissements","status":"publish","type":"post","link":"https:\/\/bioinfo.iric.ca\/fr\/nignorez-pas-les-avertissements\/","title":{"rendered":"N&rsquo;ignorez pas les avertissements!"},"content":{"rendered":"<p>Maintenant que vous utilisez R r\u00e9guli\u00e8rement, je suis certaine que vous avez remarqu\u00e9 que, parfois, R vous parle. Lorsque vous faites quelque chose d&rsquo;erron\u00e9, R r\u00e9pond avec un message \u00e9crit en rouge dans la console.<\/p>\n<p>Combien d&rsquo;entre vous lisent r\u00e9ellement ces messages d&rsquo;erreur? Si vous prenez le temps de les lire attentivement, vous verrez qu&rsquo;ils vous informent du probl\u00e8me survenu. Prenons cet exemple:<\/p>\n<pre><code><span style=\"font-size: 12px;\">&gt; sum(c('1','3','4','4'))\r\n<\/span><\/code><\/pre>\n<pre><span style=\"color: red; font-size: 12px;\">Error in sum(c(\"1\", \"3\", \"4\", \"4\")) : \r\n  invalid 'type' (character) of argument<\/span>\r\n<\/pre>\n<p>R vous indique quelle expression a caus\u00e9 l&rsquo;erreur avant de vous fournir une explication. Dans cet exemple, le type de l&rsquo;argument, plus pr\u00e9cis\u00e9ment le type <em>caract\u00e8re<\/em>, est invalide. Vous ne pouvez pas faire la somme d&rsquo;une liste de caract\u00e8res.<\/p>\n<p>Remarquez le mot-cl\u00e9 \u00ab\u00a0Error\u00a0\u00bb au d\u00e9but du message. Quand R rencontre une erreur, le code n&rsquo;est pas ex\u00e9cut\u00e9. C&rsquo;est plut\u00f4t difficile \u00e0 ignorer! Vous \u00eates oblig\u00e9 de corriger l&rsquo;expression fautive!<\/p>\n<p>Toutefois, vous rencontrerez parfois des messages d&rsquo;avertissement, \u00ab\u00a0Warnings\u00a0\u00bb. Ces messages ne sont pas li\u00e9s \u00e0 des erreurs critiques et dans ces cas-l\u00e0, le code est ex\u00e9cut\u00e9 m\u00eame si quelque chose est incorrect.<\/p>\n<pre><code><span style=\"font-size: 12px;\">&gt; mean(c('1','3','4','4'))\r\n[1] NA\r\n<\/span><\/code><\/pre>\n<pre><span style=\"color: red; font-size: 12px;\">\r\nWarning message:\r\nIn mean.default(c(\"1\", \"3\", \"4\", \"4\")) :\r\nargument is not numeric or logical: returning NA\r\n<\/span><\/pre>\n<p>Encore une fois, combien d&rsquo;entre vous lisent r\u00e9ellement les messages d&rsquo;avertissements? C&rsquo;est tentant de les trouver d\u00e9rangeant et de les ignorer. Particuli\u00e8rement lorsqu&rsquo;ils sont nombreux. En effet, quand il y a 50 avertissements ou plus, R ne les affiche pas directement. Il affiche plut\u00f4t un message vous avisant qu&rsquo;il y avait des avertissements et vous sugg\u00e8re d&rsquo;utiliser la commande\/fonction <code>warnings()<\/code> pour les afficher.<\/p>\n<p>Il est alors important de les consulter pour d\u00e9cider s&rsquo;il faut corriger ou non le code qui les a caus\u00e9s. Si vous ne le faites pas, vous ne saurez pas si le r\u00e9sultat retourn\u00e9 est bon ou pas.<\/p>\n<p>Laissez-moi vous pr\u00e9sentez un cas auquel j&rsquo;ai \u00e9t\u00e9 confront\u00e9e plusieurs fois cet \u00e9t\u00e9. Quand vous voulez comparez deux groupes (deux vecteurs de donn\u00e9es) et que vous ne pouvez dire si les donn\u00e9es proviennent de population \u00e0 distribution normale, l&rsquo;utilisation d&rsquo;un test statistique non param\u00e9trique est appropri\u00e9. Le test de la somme des rangs de Wilcoxon (aussi connu comme le test U de Mann-Withney ou test de Wilcoxon-Mann-Whitney) permet de savoir si deux vecteurs d&rsquo;observations ind\u00e9pendantes proviennent ou non de la m\u00eame distribution. Ce test se base sur l&rsquo;ordonnancement des valeurs des deux vecteurs : si les deux vecteurs proviennent de la m\u00eame distribution, aucun motif ne sera observable. Par contre, s&rsquo;ils proviennent de deux distributions diff\u00e9rentes, un motif sera perceptible.<\/p>\n<table style=\"height: 66px;\" width=\"405\" cellspacing=\"2\" cellpadding=\"2\" border=\"1\">\n<tbody>\n<tr>\n<td>Observations du groupe A:<\/td>\n<td style=\"text-align: center;\">4<\/td>\n<td style=\"text-align: center;\">8<\/td>\n<td style=\"text-align: center;\">9<\/td>\n<td style=\"text-align: center;\">10<\/td>\n<td style=\"text-align: center;\">5<\/td>\n<td style=\"text-align: center;\">11<\/td>\n<\/tr>\n<tr>\n<td>Observations du groupe B:<\/td>\n<td style=\"text-align: center;\">1<\/td>\n<td style=\"text-align: center;\">3<\/td>\n<td style=\"text-align: center;\">5<\/td>\n<td style=\"text-align: center;\">8<\/td>\n<td style=\"text-align: center;\">6<\/td>\n<td style=\"text-align: center;\">9<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Les valeurs sont ordonn\u00e9es et un rang leur est attribu\u00e9. La moyenne du rang est utilis\u00e9e lorsque l&rsquo;on se retrouve avec des doublons. La somme des rangs est ensuite effectu\u00e9e.<\/p>\n<table style=\"height: 92px;\" width=\"549\" cellspacing=\"2\" cellpadding=\"2\" border=\"1\">\n<tbody>\n<tr>\n<td>Groupe :<\/td>\n<td style=\"text-align: center;\">B<\/td>\n<td style=\"text-align: center;\">B<\/td>\n<td style=\"text-align: center;\">A<\/td>\n<td style=\"text-align: center;\">B<\/td>\n<td style=\"text-align: center;\">A<\/td>\n<td style=\"text-align: center;\">B<\/td>\n<td style=\"text-align: center;\">A<\/td>\n<td style=\"text-align: center;\">B<\/td>\n<td style=\"text-align: center;\">B<\/td>\n<td style=\"text-align: center;\">A<\/td>\n<td style=\"text-align: center;\">A<\/td>\n<td style=\"text-align: center;\">A<\/td>\n<\/tr>\n<tr>\n<td>Observations :<\/td>\n<td style=\"text-align: center;\">1<\/td>\n<td style=\"text-align: center;\">3<\/td>\n<td style=\"text-align: center;\">4<\/td>\n<td style=\"text-align: center;\">5<\/td>\n<td style=\"text-align: center;\">5<\/td>\n<td style=\"text-align: center;\">6<\/td>\n<td style=\"text-align: center;\">8<\/td>\n<td style=\"text-align: center;\">8<\/td>\n<td style=\"text-align: center;\">9<\/td>\n<td style=\"text-align: center;\">9<\/td>\n<td style=\"text-align: center;\">10<\/td>\n<td style=\"text-align: center;\">11<\/td>\n<\/tr>\n<tr>\n<td>Rang :<\/td>\n<td style=\"text-align: center;\">1<\/td>\n<td style=\"text-align: center;\">2<\/td>\n<td style=\"text-align: center;\">3<\/td>\n<td style=\"text-align: center;\">4.5<\/td>\n<td style=\"text-align: center;\">4.5<\/td>\n<td style=\"text-align: center;\">6<\/td>\n<td style=\"text-align: center;\">7.5<\/td>\n<td style=\"text-align: center;\">7.5<\/td>\n<td style=\"text-align: center;\">9.5<\/td>\n<td style=\"text-align: center;\">9.5<\/td>\n<td style=\"text-align: center;\">11<\/td>\n<td style=\"text-align: center;\">12<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>wA = 3+4.5+7.5+9.5+11+12 = 47.5<br \/>\nwB = 1+2+4.5+6+7.5+9.5 = 30.5<\/p>\n<p>Ces valeurs sont ensuite utilis\u00e9es pour \u00e9valuer si l&rsquo;hypoth\u00e8se nulle est vraie ou fausse.<\/p>\n<p>Dans R, la fonction <code>wilcox.test()<\/code> retourne le r\u00e9sultat suivant:<\/p>\n<pre>\t<span style=\"font-size: 12px;\">\r\nWilcoxon rank sum test with continuity correction\r\ndata:  x and y\r\nW = 26.5, p-value = 0.1978\r\nalternative hypothesis: true location shift is not equal to 0\r\n<\/span><\/pre>\n<pre><span style=\"color: red; font-size: 12px;\">\r\nWarning message:\r\nIn wilcox.test.default(x, y) : cannot compute exact p-value with ties\r\n<\/span><\/pre>\n<p>On obtient une <em>p-value<\/em>, mais elle est d\u00e9riv\u00e9e d&rsquo;une approximation normale. Avec un nombre peu \u00e9lev\u00e9 de donn\u00e9es par groupe, cela peut mener \u00e0 des estimations douteuses. Qu&rsquo;\u00e0 cela ne tienne, vous avez \u00e9t\u00e9 avertis![\/fusion_builder_column][\/fusion_builder_row][\/fusion_builder_container]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Maintenant que vous utilisez R r\u00e9guli\u00e8rement, je suis certaine que vous avez remarqu\u00e9 que, parfois, R vous parle. Lorsque vous faites quelque chose d&rsquo;erron\u00e9, R r\u00e9pond avec un message \u00e9crit en rouge dans la console. Combien d&rsquo;entre vous lisent r\u00e9ellement ces messages d&rsquo;erreur? Si vous prenez le temps de les lire attentivement, vous verrez qu&rsquo;ils vous informent du probl\u00e8me survenu. Prenons cet exemple: &gt; sum(c(&lsquo;1&prime;,&rsquo;3&prime;,&rsquo;4&prime;,&rsquo;4&rsquo;)) Error in sum(c(\u00ab\u00a01\u00a0\u00bb, \u00ab\u00a03\u00a0\u00bb, \u00ab\u00a04\u00a0\u00bb, \u00ab\u00a04\u00a0\u00bb)) : invalid &lsquo;type&rsquo; (character) of argument R vous indique <a href=\"https:\/\/bioinfo.iric.ca\/fr\/nignorez-pas-les-avertissements\/\"> [&#8230;]<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[24,27],"tags":[],"class_list":["post-1492","post","type-post","status-publish","format-standard","hentry","category-langage-r","category-statistiques"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/1492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/comments?post=1492"}],"version-history":[{"count":17,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/1492\/revisions"}],"predecessor-version":[{"id":3314,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/1492\/revisions\/3314"}],"wp:attachment":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/media?parent=1492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/categories?post=1492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/tags?post=1492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}