{"id":187,"date":"2014-10-20T13:32:50","date_gmt":"2014-10-20T11:32:50","guid":{"rendered":"http:\/\/perso.ens-lyon.fr\/lise.vaudor\/?p=187"},"modified":"2017-05-23T15:45:48","modified_gmt":"2017-05-23T13:45:48","slug":"ajustement-distribution","status":"publish","type":"post","link":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/ajustement-distribution\/","title":{"rendered":"Ajuster un mod\u00e8le de distribution \u00e0 des donn\u00e9es"},"content":{"rendered":"<p><img decoding=\"async\" src=\"..\/..\/lise.vaudor\/Rfigures\/Ajustement_distribution_methode_des_moments\/headband.png\" alt=\"plot of chunk\nheadband\" \/><\/p>\n<p>Ce billet vise \u00e0 vous montrer comment ajuster un <strong>mod\u00e8le de distribution<\/strong> (par exemple une jolie \u00ab\u00a0cloche\u00a0\u00bb gaussienne) \u00e0 une distribution empirique (i.e. la distribution de vos donn\u00e9es telle que vous l&rsquo;observez, par exemple en tra\u00e7ant l&rsquo;<strong>histogramme<\/strong> correspondant).<\/p>\n<p>Il existe plusieurs m\u00e9thodes possibles pour faire cela, dont la m\u00e9thode des moments dont je vais parler ici.<\/p>\n<p>Consid\u00e9rons les donn\u00e9es disponibles <a href=\"\/Rdata\/Ajustement_distribution_maximum_de_vraisemblance\/data_vraisemblance.csv\">ici<\/a><\/p>\n<pre><code>x=read.csv(paste(dat.path,\"data_vraisemblance.csv\",sep=\"\"),sep=\";\")$x\nhead(x)\n\n## [1] 132.5 194.8 179.0 108.7 112.5 160.5\n<\/code><\/pre>\n<p>L&rsquo;histogramme suivant montre la distribution empirique de la variable.<\/p>\n<pre><code>hist(x, col=\"pink\")\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"..\/..\/lise.vaudor\/Rfigures\/Ajustement_distribution_methode_des_moments\/histogramme.png\" alt=\"plot of chunk\nhistogramme\" \/><\/p>\n<h1>Un exemple: mod\u00e8le de distribution normale<\/h1>\n<p>Nous allons essayer d&rsquo;<strong>ajuster<\/strong> une <strong>loi de distribution normale<\/strong> (ou gaussienne) \u00e0 ces donn\u00e9es (i.e. nous allons \u00ab\u00a0caler\u00a0\u00bb la fameuse forme de cloche sur cette distribution).<\/p>\n<p>Un mod\u00e8le de distribution normale pour la variable <em>X<\/em> s&rsquo;\u00e9crit ainsi:<\/p>\n<pre><code>    $$X \\sim \\mathcal{N}(\\mu,\\sigma)$$\n<\/code><\/pre>\n<p>C&rsquo;est \u00e0 dire qu&rsquo;un mod\u00e8le de distribution normale a deux param\u00e8tres:<\/p>\n<ul>\n<li>un param\u00e8tre <em>\u03bc<\/em><\/li>\n<li>un param\u00e8tre <em>\u03c3<\/em><\/li>\n<\/ul>\n<p>La d\u00e9finition de la loi normale est telle que son <strong>esp\u00e9rance<\/strong> et sa <strong>variance<\/strong> -i.e. ses <strong>moments<\/strong> d&rsquo;ordre 1 et 2- sont:<\/p>\n<pre><code>    $$E(X)=\\mu \\\\\n      Var(X)=\\sigma^2\n    $$\n<\/code><\/pre>\n<p>C&rsquo;est \u00e0 dire que l&rsquo;on s&rsquo;attend \u00e0 ce que les donn\u00e9es aient une moyenne proche de <em>\u03bc<\/em> et un \u00e9cart-type proche de <em>\u03c3<\/em> (\u00ab\u00a0proche de\u00a0\u00bb et non \u00ab\u00a0\u00e9gal \u00e0\u00a0\u00bb car du fait du <strong>hasard d&rsquo;\u00e9chantillonnage<\/strong> on n&rsquo;observe pas exactement la valeur th\u00e9orique).<\/p>\n<p>Par cons\u00e9quent, on peut supposer que la moyenne et l&rsquo;\u00e9cart-type observ\u00e9s constituent une estimation possible de <em>\u03bc<\/em> et <em>\u03c3<\/em> (estimations que l&rsquo;on distingue de la valeur r\u00e9elle du parm\u00e8tre par un chapeau, \u00ab\u00a0\\^\u00a0\u00bb):<\/p>\n<pre><code>    $$\\hat\\mu=\\bar{X}=\\frac{1}{n}\\sum_{i=1}^n X_i \\\\\n       \\hat\\sigma=\\sqrt{\\frac{1}{n-1}\\sum_{i=1}^n (X_i-\\bar{X})^2}\n    $$\n<\/code><\/pre>\n<p>Il s&rsquo;agit ici d&rsquo;une estimation des param\u00e8tre <strong>par la m\u00e9thode des moments<\/strong><\/p>\n<pre><code>hat_mu=mean(x)\nhat_sigma=sd(x)\nprint(hat_mu)\n\n## [1] 166.6\n\nprint(hat_sigma)\n\n## [1] 73.48\n<\/code><\/pre>\n<p>Une loi normale ayant une telle moyenne et un tel \u00e9cart type a pour densit\u00e9 de probabilit\u00e9:<\/p>\n<pre><code>xtheo=-100:600\nytheo=dnorm(xtheo, hat_mu,hat_sigma)\n<\/code><\/pre>\n<p>Voyons ce que nous donne cette estimation de la loi de distribution graphiquement:<\/p>\n<pre><code>hist(x, col=\"pink\", prob=T)\npoints(xtheo,ytheo, col=\"lightslateblue\",type=\"l\", lwd=2)\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"..\/..\/lise.vaudor\/Rfigures\/Ajustement_distribution_methode_des_moments\/histogramme_et_fit_loi_normale.png\" alt=\"plot of chunk\nhistogramme_et_fit_loi_normale\" \/><\/p>\n<p>On peut aussi examiner la diff\u00e9rence entre distribution empirique et mod\u00e8le de distribution th\u00e9orique \u00e0 l&rsquo;aide de diagrammes quantile-quantile (ou q-q plots):<\/p>\n<pre><code>quantiles_theoriques=qnorm((1:length(x))\/length(x),hat_mu,hat_sigma)\nqqplot(quantiles_theoriques,x)\nabline(a=0,b=1, col=\"lightslateblue\")\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"..\/..\/lise.vaudor\/Rfigures\/Ajustement_distribution_methode_des_moments\/qqplot_loi_normale.png\" alt=\"plot of chunk\nqqplot_loi_normale\" \/><\/p>\n<p>Les graphiques ci-dessus montrent que le mod\u00e8le de distribution normale ne s&rsquo;ajuste pas tr\u00e8s bien aux observations. En effet, il y a une certaine asym\u00e9trie dans ces donn\u00e9es.<\/p>\n<h1>Un exemple: mod\u00e8le de distribution log-normale<\/h1>\n<p>Nous allons maintenant ajuster une loi de distribution log-normale \u00e0 ces donn\u00e9es, pour tenter de rendre compte de l&rsquo;asym\u00e9trie de la distribution.<\/p>\n<p>Un mod\u00e8le de distribution log-normale pour la variable <em>X<\/em> s&rsquo;\u00e9crit ainsi:<\/p>\n<pre><code>    $$X \\sim log\\mathcal{N}(\\mu_l,\\sigma_l)$$\n<\/code><\/pre>\n<p>C&rsquo;est \u00e0 dire qu&rsquo;un mod\u00e8le de distribution log-normale a deux param\u00e8tres:<\/p>\n<ul>\n<li>un param\u00e8tre <em>\u03bc<\/em><sub><em>l<\/em><\/sub><\/li>\n<li>un param\u00e8tre <em>\u03c3<\/em><sub><em>l<\/em><\/sub><\/li>\n<\/ul>\n<p>Math\u00e9matiquement (par d\u00e9finition de cette loi gaussienne), l&rsquo;esp\u00e9rance et la variance (i.e. les moments d&rsquo;ordre 1 et 2) d&rsquo;une telle loi sont:<\/p>\n<pre><code>    $$\n    E(X)=exp(\\mu_l+{\\sigma_l}^2\/2) \\\\\n    Var(X)=(exp(\\sigma_l^2)-1)exp(2\\mu_l+{\\sigma_l}^2)\n    $$\n<\/code><\/pre>\n<p>On a ainsi un syst\u00e8me de deux \u00e9quations \u00e0 deux inconnues (<em>\u03bc<\/em><sub><em>l<\/em><\/sub> et <em>\u03c3<\/em><sub><em>l<\/em><\/sub>) qu&rsquo;il est possible de r\u00e9soudre, de fa\u00e7on \u00e0 pouvoir exprimer <em>\u03bc<\/em><sub><em>l<\/em><\/sub> et <em>\u03c3<\/em><sub><em>l<\/em><\/sub> en fonction de l&rsquo;esp\u00e9rance et de la variance de X.<\/p>\n<p>&#8230; Bon, c&rsquo;est possible, mais un peu compliqu\u00e9 pour qui aime rigoler. Nous allons donc ici plut\u00f4t utiliser une propri\u00e9t\u00e9 de la loi log-normale, qui est que:<\/p>\n<pre><code>    $$X \\sim log\\mathcal{N}(\\mu_l,\\sigma_l) \\Leftrightarrow log(X) \\sim \\mathcal{N}(\\mu_l,\\sigma_l)$$\n<\/code><\/pre>\n<p>C&rsquo;est \u00e0 dire que l&rsquo;on s&rsquo;attend \u00e0 ce que les donn\u00e9es <em>log-transform\u00e9es<\/em> aient une moyenne proche de <em>\u03bc<\/em><sub><em>l<\/em><\/sub> et un \u00e9cart-type proche de <em>\u03c3<\/em><sub><em>l<\/em><\/sub>.<\/p>\n<p>Par cons\u00e9quent, les estimations par la m\u00e9thode des moments sont:<\/p>\n<pre><code>hat_mu_l=mean(log(x))\nhat_sigma_l=sd(log(x))\nprint(hat_mu_l)\n\n## [1] 5.027\n\nprint(hat_sigma_l)\n\n## [1] 0.4324\n<\/code><\/pre>\n<p>Une loi log-normale ayant ces deux valeurs de param\u00e8tres a pour densit\u00e9 de probabilit\u00e9:<\/p>\n<pre><code>xtheo=-100:600\nytheo_l=dlnorm(xtheo, hat_mu_l,hat_sigma_l)\n<\/code><\/pre>\n<p>Voyons ce que nous donne cette estimation de la loi de distribution graphiquement(on conserve la distribution normale en bleu pour comparaison):<\/p>\n<pre><code>hist(x, col=\"pink\", prob=T)\npoints(xtheo,ytheo, col=\"lightslateblue\",type=\"l\", lwd=2)\npoints(xtheo,ytheo_l, col=\"palevioletred\",type=\"l\", lwd=2)\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"..\/..\/lise.vaudor\/Rfigures\/Ajustement_distribution_methode_des_moments\/histogramme_et_fit_loi_log_normale.png\" alt=\"plot of chunk\nhistogramme_et_fit_loi_log_normale\" \/><\/p>\n<p>Et le diagramme quantile-quantile (ou q-q plots):<\/p>\n<pre><code>quantiles_theoriques=qlnorm((1:length(x))\/length(x),hat_mu_l,hat_sigma_l)\nqqplot(quantiles_theoriques,x)\nabline(a=0,b=1, col=\"palevioletred\")\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"..\/..\/lise.vaudor\/Rfigures\/Ajustement_distribution_methode_des_moments\/qqplot_loi_log_normale.png\" alt=\"plot of chunk\nqqplot_loi_log_normale\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ce billet vise \u00e0 vous montrer comment ajuster un mod\u00e8le de distribution (par exemple une jolie \u00ab\u00a0cloche\u00a0\u00bb gaussienne) \u00e0 une distribution empirique (i.e. la distribution de vos donn\u00e9es telle que vous l&rsquo;observez, par exemple en tra\u00e7ant l&rsquo;histogramme correspondant). Il existe plusieurs m\u00e9thodes possibles pour faire cela, dont la m\u00e9thode des moments dont je vais parler ici. Consid\u00e9rons les donn\u00e9es disponibles ici x=read.csv(paste(dat.path,\u00a0\u00bbdata_vraisemblance.csv\u00a0\u00bb,sep=\u00a0\u00bb\u00a0\u00bb),sep=\u00a0\u00bb;\u00a0\u00bb)$x head(x) ## [1] 132.5 194.8 179.0 108.7 112.5.. <a href=\"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/ajustement-distribution\/\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-187","post","type-post","status-publish","format-standard","hentry","category-tous-les-posts"],"_links":{"self":[{"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/posts\/187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/comments?post=187"}],"version-history":[{"count":38,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/posts\/187\/revisions"}],"predecessor-version":[{"id":225,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/posts\/187\/revisions\/225"}],"wp:attachment":[{"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/media?parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/categories?post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/tags?post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}