{"id":2527,"date":"2016-09-29T13:00:10","date_gmt":"2016-09-29T17:00:10","guid":{"rendered":"http:\/\/bioinfo.iric.ca\/fr\/?p=2527"},"modified":"2017-04-29T18:30:53","modified_gmt":"2017-04-29T22:30:53","slug":"bootstraps-and-confidence-intervals","status":"publish","type":"post","link":"https:\/\/bioinfo.iric.ca\/fr\/bootstraps-and-confidence-intervals\/","title":{"rendered":"Bootstraps et intervalles de confiance"},"content":{"rendered":"<p>Lors de l&rsquo;analyse des donn\u00e9es, vous pourriez vouloir ajuster (<em>fitter<\/em>)\u00a0un type de courbe sp\u00e9cifique \u00e0 un ensemble de donn\u00e9es particulier. Ce type d&rsquo;analyse peut nous \u00e9claircir sur la relation entre deux (ou plusieurs&#8230;) param\u00e8tres quantifiables. L&rsquo;object principal de cet article n&rsquo;est pas le <em>comment\u00a0<\/em>de l&rsquo;ajustement-m\u00eame, mais plut\u00f4t l&rsquo;\u00e9valuation de sa qualit\u00e9 i.e. comment calculer un intervalle de confiance autour d&rsquo;une courbe ajust\u00e9e. Cela \u00e9tant dit, je vous montrerai comment faire un ajustement simple en utilisant diff\u00e9rentes librairies R, mais je n&rsquo;irai pas dans de plus amples d\u00e9tails. Si vous \u00eates int\u00e9ress\u00e9s \u00e0 en apprendre plus sur l&rsquo;ajustement de courbe, je vous conseille la documentation de SciPy (Python), Theano (Python) et CRAN (R). Les fonctions SciPy et les librairies R peuvent \u00eatre plus faciles \u00e0 utiliser alors que Theano est, selon moi, moins trivial.<\/p>\n<p>Commen\u00e7ons avec un jeu de donn\u00e9es simple, correspondant \u00e0 la\u00a0<em>r\u00e9ponse<\/em> par rapport au\u00a0<em>temps.\u00a0<\/em>Sur l&rsquo;axe des x, nous avons le temps \u00e9coul\u00e9 en minutes et sur l&rsquo;axe des y, la r\u00e9ponse. Les valeurs sont enregistr\u00e9es dans les variables\u00a0<code>x<\/code>\u00a0et\u00a0<code>y<\/code> respectivement.<\/p>\n<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 hundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-overflow:visible;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last fusion-column-no-min-height\" style=\"--awb-bg-size:cover;--awb-margin-bottom:0px;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div id=\"attachment_2505\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_0-1.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-2505\" class=\"wp-image-2505 size-medium\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_0-1-300x191.png\" width=\"300\" height=\"191\" srcset=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_0-1-200x127.png 200w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_0-1-300x191.png 300w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_0-1-400x254.png 400w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_0-1-460x295.png 460w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_0-1-600x381.png 600w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_0-1.png 752w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2505\" class=\"wp-caption-text\">Figure 1. Ensemble de donn\u00e9es initial:\u00a0R\u00e9ponse \u00e0 travers le temps (minutes). Pour chaque point de temps, il y a cinq (5) r\u00e9plicats.<\/p><\/div>\n<p>Ayant ce jeu de donn\u00e9es ainsi que des connaissances ant\u00e9rieures sur la tendance que nous devrions observer, nous aimerions ajuster un mod\u00e8le non-lin\u00e9aire \u00e0 ces points. Plus pr\u00e9cis\u00e9ment, nous voulons ajuster $ y = ax^{2} + b\u00a0$. L&rsquo;ajustement m\u00eame peut facilement \u00eatre fait en utilisant la fonction R\u00a0<code>nls<\/code>. Pr\u00e9sentement, nous utilisons l&rsquo;approche des moindres carr\u00e9s. Ayant une fonction \u00e0 ajuster\u00a0<span style=\"font-family: monospace;\">to.fit<\/span>\u00a0et un ensemble de donn\u00e9es observ\u00e9es (<code>x, y<\/code> ), \u00a0<span style=\"font-family: monospace;\">nls<\/span>\u00a0estimera des valeurs pour nos deux param\u00e8tres <span style=\"font-family: monospace;\">a<\/span>\u00a0et\u00a0<span style=\"font-family: monospace;\">b<\/span>.<\/p>\n<pre><code>fit &lt;- nls(y ~ to.fit(x, a, b), start = list(a = 1.0, b = 1.0))<\/code><\/pre>\n<p>Le r\u00e9sultat est pr\u00e9sent\u00e9 sous forme de tableau \u00e0 partir duquel nous pouvons facilement r\u00e9cup\u00e9rer les estimations ainsi que d&rsquo;autres statistiques utiles. Nous avons maintenant notre \u00a0<span style=\"font-family: monospace;\">yfit<\/span>,\u00a0c&rsquo;est-\u00e0-dire notre courbe ajust\u00e9e!<\/p>\n<div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last fusion-column-no-min-height\" style=\"--awb-bg-size:cover;--awb-margin-bottom:0px;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div id=\"attachment_2509\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_1.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-2509\" class=\"wp-image-2509 size-medium\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_1-300x191.png\" alt=\"figure_1\" width=\"300\" height=\"191\" srcset=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_1-200x127.png 200w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_1-300x191.png 300w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_1-400x254.png 400w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_1-460x295.png 460w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_1-600x381.png 600w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_1.png 752w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2509\" class=\"wp-caption-text\">Figure 2. Courbe ajust\u00e9e: ajustement non-lin\u00e9aire des moindres carr\u00e9s d&rsquo;une \u00e9quation pr\u00e9-d\u00e9finie sur notre ensemble de donn\u00e9es initial en utilisant la fonction nls de R. Nous avons utilis\u00e9 predict(fit) pour g\u00e9n\u00e9rer les yfit. La courbe ajust\u00e9e est repr\u00e9sent\u00e9e en rouge.<\/p><\/div>\n<p>\u00c7a, c&rsquo;est un\u00a0beau graphique! Cependant, comment pouvons-nous \u00e9valuer la qualit\u00e9 de notre ajustement? Comment savons-nous que nos donn\u00e9es suivent en effet la tendance attendue? Plut\u00f4t que d&rsquo;utiliser uniquement nos yeux et notre intuition, nous allons <em>bootstraper<\/em>! En d&rsquo;autres mots, nous allons r\u00e9p\u00e9ter notre ajustement\u00a0<em>m<\/em>\u00a0fois en utilisant\u00a0<em>n<\/em>\u00a0points de donn\u00e9es provenant de notre ensemble initial et d\u00e9river un intervalle de confiance \u00e0 partirc de toutes ces nouvelles courbes. Pour ce faire, nous utiliserons deux librairies R:\u00a0<span style=\"font-family: monospace;\">broom\u00a0<\/span>et\u00a0<span style=\"font-family: monospace;\">dplyr<\/span>. Il se peut que vous aillez \u00e0 installer les paquets avant de pouvoir importer les librairies m\u00eames (oublier cette \u00e9tapes pourrait mener \u00e0 des messages d&rsquo;erreur et \u00e0 beaucoup de frustration).\u00a0<span style=\"font-family: monospace;\">broom<\/span><span style=\"font-family: monospace;\">\u00a0<\/span>a une fonction <em>bootstrap\u00a0<\/em>automatis\u00e9e qui peut vous sauver beaucoup de temps.<\/p>\n<pre><code>boot &lt;- 1000\r\nset.seed(2000)\r\ndf &lt;- data.frame(\"x\" = x, \"y\" = y)\r\n<\/code><\/pre>\n<p>Nous devons d&rsquo;abord d\u00e9finir le nombre de fois que nous voulons r\u00e9p\u00e9ter notre ajustement. Un plus grand\u00a0<span style=\"font-family: monospace;\">boot<\/span>\u00a0n\u00e9cessite g\u00e9n\u00e9ralement plus de temps \u00e0 rouler, mais pourrait \u00e9galement se traduire en un intervalle de confiance plus pr\u00e9cis. Ici, nous travaillerons avec \u00a01000 <em>bootstraps<\/em>.<\/p>\n<pre><code>bt &lt;- df %&gt;% bootstrap(boot) %&gt;%\r\n do(tidy(nls(y ~ to.fit(x, a, b), ., start = list(a = 1.0, b = 1.0))))\r\n<\/code><\/pre>\n<p>Dans cette \u00e9tape, nous demandons de faire $m = boot$ ajustements de courbes. Chaque ajustement se fera sur un \u00ab\u00a0nouvel\u00a0\u00bb ensemble de donn\u00e9es qui sera construit en choisissant au hasard $n$ points de notre jeu de donn\u00e9es initial, o\u00f9 $n$ est le nombre de donn\u00e9es dans l&rsquo;ensemble initial. Les r\u00e9p\u00e9titions sont permises dans cette s\u00e9lection al\u00e9atoire. Une fois ce \u00ab\u00a0nouveau\u00a0\u00bb jeu de donn\u00e9es fait, nous appliquons la m\u00eame approche d&rsquo;ajustement qu&rsquo;avant. Au final, nous aurons $m$ estimations pour chacun de nos param\u00e8tres.<\/p>\n<pre><code>bt.all &lt;- df %&gt;% bootstrap(boot) %&gt;%\r\n do(augment(nls(y ~ to.fit(x, a, b), ., start = list(a = 1.0, b = 1.0)), .))<\/code><\/pre>\n<p>Compar\u00e9 \u00e0 l&rsquo;extrait pr\u00e9sent\u00e9 o\u00f9 nous n&rsquo;avions que les estimations de param\u00e8tres, nous g\u00e9n\u00e9rons maintenant les valeurs\u00a0<span style=\"font-family: monospace;\">yfit<\/span>\u00a0de tous les \u00e9chantillons <em>bootstrap<\/em>. Avec ces valeurs et les\u00a0<span style=\"font-family: monospace;\">x<\/span>\u00a0qui leur correspondent, nous sommes en mesure de tracer les diff\u00e9rentes courbes <em>bootstrap<\/em>. Notez qu&rsquo;ici les\u00a0<span style=\"font-family: monospace;\">x<\/span>\u00a0sont sp\u00e9cifiques \u00e0 chaque <em>bootstrap<\/em>\u00a0et ne correspondent donc pas n\u00e9cessairement \u00e0 nos <span style=\"font-family: monospace;\">x<\/span>\u00a0initiaux.<\/p>\n<div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last fusion-column-no-min-height\" style=\"--awb-bg-size:cover;--awb-margin-bottom:0px;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div id=\"attachment_2513\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_2.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-2513\" class=\"wp-image-2513 size-medium\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_2-300x191.png\" alt=\"figure_2\" width=\"300\" height=\"191\" srcset=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_2-200x127.png 200w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_2-300x191.png 300w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_2-400x254.png 400w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_2-460x295.png 460w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_2-600x381.png 600w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_2.png 752w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2513\" class=\"wp-caption-text\">Figure 3. Courbe ajust\u00e9e avec <em>bootstrap<\/em>: ajustement non-lin\u00e9aire des moindres carr\u00e9s d&rsquo;une \u00e9quation pr\u00e9-d\u00e9finie sur notre ensemble de donn\u00e9es initial en utilisant la fonction nls de R. 1000 <em>bootstraps<\/em> ont \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9s en utilisant la fonction <em>bootstrap<\/em> de la librairie R broom. La courbe ajust\u00e9e est repr\u00e9sent\u00e9e en rouge. Les courbes <em>bootstrap<\/em> sont repr\u00e9sent\u00e9es en gris.<\/p><\/div>\n<p>La zone grise d\u00e9finie par les diff\u00e9rents <em>bootstraps<\/em> peut \u00eatre utile lorsque nous \u00e9valuons la qualit\u00e9 de notre ajustement. Cela \u00e9tant dit, ce n&rsquo;est pas toujours suffisant: dans certains cas, nous pourrions avoir une ou plusieurs courbes aberrantes. Par exemple, un \u00e9chantillon\u00a0<em>bootstrap<\/em> pourrait \u00eatre compos\u00e9 d&rsquo;un m\u00eame point\u00a0$n$ fois, ce qui r\u00e9sulterait en une dr\u00f4le de courbe ne correspondant pas aux autres. Nous ne voulons pas ce genre de courbes dans notre graphique, mais nous ne pouvons pas non plus les enlever manuellement. Premi\u00e8rement, la t\u00e2che ne serait pas simple et deuxi\u00e8mement, nous ne pouvons tout simplement pas manipuler nos donn\u00e9es d&rsquo;une telle mani\u00e8re. \u00c0 la place, nous allons g\u00e9n\u00e9rer un intervalle de confiance !<\/p>\n<p>Nous devons g\u00e9n\u00e9rer un tableau\u00a0<span style=\"font-family: monospace;\">fitted<\/span>\u00a0dont les colonnes sont les valeurs\u00a0<span style=\"font-family: monospace;\">x<\/span>\u00a0 de notre ensemble initial, et dont les rang\u00e9es sont les\u00a0<span style=\"font-family: monospace;\">yfit<\/span>\u00a0pour chaque <em>bootstrap<\/em>. Il faut faire attention ici: les <span style=\"font-family: monospace;\">yfit<\/span>\u00a0sont calcul\u00e9s en utilisant les <span style=\"font-family: monospace;\">x<\/span>\u00a0initiaux plut\u00f4t que les\u00a0<span style=\"font-family: monospace;\">x<\/span>\u00a0correspondant \u00e0 chaque <em>bootstrap<\/em>. Cela veut dire que nous ne pouvons pas utiliser les m\u00eames\u00a0<span style=\"font-family: monospace;\">yfit<\/span>\u00a0que ceux trac\u00e9s! Nous devons utiliser les estimations de param\u00e8tres et calculer chaque\u00a0<span style=\"font-family: monospace;\">yfit<\/span>\u00a0en utilisant nos\u00a0<span style=\"font-family: monospace;\">x\u00a0<\/span>initiaux.<\/p>\n<pre><code>alpha &lt;- 0.05\r\nlower &lt;- (alpha \/ 2) * boot\r\nupper &lt;- boot - lower\r\n<\/code><\/pre>\n<p>Nous allons calculer un intervalle de confiance de 95%, avec bornes sup\u00e9rieure et inf\u00e9rieure. Encore une fois, un plus grand\u00a0<span style=\"font-family: monospace;\">boot<\/span>\u00a0faciliterait la t\u00e2che. Disons que nous avons $boot = 100$. Lorsque nous calculons les bornes, nous obtenons $ lower = \\frac{0.05}{2} 100 = 2.5$ et\u00a0$upper = 100 &#8211; 2.5 = 97.5$. Pour des raisons d&rsquo;int\u00e9grit\u00e9 de type, les deux valeurs devront \u00eatre arrondies. Le r\u00e9sultat serait alors un intervalle de confiance qui n&rsquo;est pas tout \u00e0 fait de 95%. En utilisant\u00a0$boot \u2265 1000$ nous n&rsquo;avons plus ce probl\u00e8me.<\/p>\n<pre><code>ci.sorted &lt;- apply(fitted, 2, sort, decreasing = F)<\/code><\/pre>\n<p>Nous trions maintenant individuellement les colonnes de notre table en ordre croissant. Par cons\u00e9quent, pour tout x, nous avons le maximum et le minimum des valeurs g\u00e9n\u00e9r\u00e9es par <em>bootstrap<\/em>.<\/p>\n<pre><code>ci.upper &lt;- ci.sorted[upper,]\r\nci.lower &lt;- ci.sorted[lower,]\r\n<\/code><\/pre>\n<p>Et maintenant, nous construisons l&rsquo;intervalle. Notre borne inf\u00e9rieure est d\u00e9finie par les valeurs de la rang\u00e9e correspondant \u00e0 notre\u00a0<span style=\"font-family: monospace;\">lower<\/span>\u00a0calcul\u00e9. Puisque que chaque colonne est tri\u00e9e en ordre croissant, cette rang\u00e9e repr\u00e9sente les valeurs au seuil $\\frac{\\alpha}{2}$. Inversement, la rang\u00e9e\u00a0<span style=\"font-family: monospace;\">upper<\/span>\u00a0repr\u00e9sente le seuil $1 &#8211; \\frac{\\alpha}{2}$.<\/p>\n<div id=\"attachment_2519\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_3.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-2519\" class=\"wp-image-2519 size-medium\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_3-300x191.png\" alt=\"figure_3\" width=\"300\" height=\"191\" srcset=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_3-200x127.png 200w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_3-300x191.png 300w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_3-400x254.png 400w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_3-460x295.png 460w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_3-600x381.png 600w, https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/09\/figure_3.png 752w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2519\" class=\"wp-caption-text\">Figure 4. Courbe ajust\u00e9e avec intervalle de confiance de 95%: ajustement non-lin\u00e9aire des moindres carr\u00e9s d&rsquo;une \u00e9quation pr\u00e9-d\u00e9finie sur notre ensemble de donn\u00e9es initial en utilisant la fonction nls de R. 1000 bootstraps ont \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9s en utilisant la fonction bootstrap de la librairie R broom. L&rsquo;intervalle de confiance fut calcul\u00e9 \u00e0 partir des donn\u00e9es de bootstrap. La courbe ajust\u00e9e est repr\u00e9sent\u00e9e en rouge. Les courbes de l&rsquo;intervalle sont repr\u00e9sent\u00e9es en pointill\u00e9.<\/p><\/div>\n<p>Alors voil\u00e0! Nous avons maintenant une meilleure id\u00e9e de la qualit\u00e9 de notre ajustement!<div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Lors de l&rsquo;analyse des donn\u00e9es, vous pourriez vouloir ajuster (fitter)\u00a0un type de courbe sp\u00e9cifique \u00e0 un ensemble de donn\u00e9es particulier. Ce type d&rsquo;analyse peut nous \u00e9claircir sur la relation entre deux (ou plusieurs&#8230;) param\u00e8tres quantifiables. L&rsquo;object principal de cet article n&rsquo;est pas le comment\u00a0de l&rsquo;ajustement-m\u00eame, mais plut\u00f4t l&rsquo;\u00e9valuation de sa qualit\u00e9 i.e. comment calculer un intervalle de confiance autour d&rsquo;une courbe ajust\u00e9e. Cela \u00e9tant dit, je vous montrerai comment faire un ajustement simple en utilisant diff\u00e9rentes librairies R, mais je <a href=\"https:\/\/bioinfo.iric.ca\/fr\/bootstraps-and-confidence-intervals\/\"> [&#8230;]<\/a><\/p>\n","protected":false},"author":11,"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":[69,24,27],"tags":[130],"class_list":["post-2527","post","type-post","status-publish","format-standard","hentry","category-analyse-de-donnees","category-langage-r","category-statistiques","tag-visualisation-de-donnees"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/2527","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\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/comments?post=2527"}],"version-history":[{"count":22,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/2527\/revisions"}],"predecessor-version":[{"id":3288,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/2527\/revisions\/3288"}],"wp:attachment":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/media?parent=2527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/categories?post=2527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/tags?post=2527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}