<p>Une visualisation de l'ensemble des données semble montrer une augmentation tendancielle de la concentration en CO2, à laquelle se superpose une oscillation à plus haute fréquence.</p>
<p>Une visualisation de l'ensemble des données semble montrer une augmentation tendancielle de la concentration en CO2, à laquelle se superpose une oscillation à plus haute fréquence.</p>
<p>Un zoom sur les dernières années laisse penser que le cycle court se produit sur une période annuelle, avec un minimum local atteint chaque année autour du mois d'octobre.</p>
<p>Un zoom sur les dernières années laisse penser que le cycle court se produit sur une période annuelle, avec un minimum local atteint chaque année autour du mois d'octobre.</p>
<p>En zoomant sur les données interpolées autour de l'une des périodes de données manquantes, on observe bien le résultat attendu : une interpolation linéaire journalière lorsque les données sont disponibles, mais aucune interpolation lorsque les données sont manquantes.</p>
<p>En zoomant sur les données interpolées autour de l'une des périodes de données manquantes, on observe bien le résultat attendu : une interpolation linéaire journalière lorsque les données sont disponibles, mais aucune interpolation lorsque les données sont manquantes.</p>
<p>Sur ces années complètes, la composante <code>day</code> de la date devrait être équirépartie entre 0 et 365, ce qui est globalement le cas. Les données manquantes n'ont donc pas d'impact significatif de ce point de vue là.</p>
<p>Sur ces années complètes, la composante <code>day</code> de la date devrait être équirépartie entre 0 et 365, ce qui est globalement le cas. Les données manquantes n'ont donc pas d'impact significatif de ce point de vue là.</p>
<p>Pour chaque année, on commence par tenter d'extraire la composante oscillante de la mesure. Si l'on note <span class="math">$C_a$</span> la concentration en CO2 durant l'année <span class="math">$a$</span> et <span class="math">$d$</span> un jour de cette année, on cherche à écrire :</p>
<p>Pour chaque année, on commence par tenter d'extraire la composante oscillante de la mesure. Si l'on note <span class="math">$C_a(d)$</span> la concentration en CO2 le jour numéro <span class="math">$d$</span> de l'année <span class="math">$a$</span>, on cherche à écrire :</p>
<p>ce qui correspond à une version locale de l'expression globale cherchée pour la variation de concentration en CO2 : <span class="math">$\theta_a$</span> et <span class="math">$\phi_a$</span> donnent respectivement la tendance et la forme de la concentration pour l'année <span class="math">$a$</span>.</p>
<p>ce qui correspond à une version locale (pour l'année <span class="math">$a$</span>) de l'expression globale cherchée pour la variation de concentration en CO2 : <span class="math">$\theta_a$</span> et <span class="math">$\phi_a$</span> donnent respectivement la tendance et la forme de la concentration pour l'année <span class="math">$a$</span>.</p>
<p>Cherchant une tendance d'ordre aussi bas que possible, nous supposons que <span class="math">$\theta_a$</span> peut être approchée par un modèle affine à cette échelle de temps courts :</p>
<p>Cherchant une tendance d'ordre aussi bas que possible, nous supposons que <span class="math">$\theta_a$</span> peut être approchée par un modèle affine à cette échelle de temps courts :</p>
<p>Examinons par exemple l'effet de ce traitement sur les données interpolées de l'année 1982. On voit, sur la figure du haut, les mesures brutes ainsi que la tendance locale (affine). Sur la figure du bas, la composante périodique locale vérifie bien les contraintes demandées, avec ses valeurs nulles aux bords.</p>
<p>Examinons par exemple l'effet de ce traitement sur les données interpolées de l'année 1982. On voit, sur la figure du haut, les mesures brutes ainsi que la tendance locale (affine). Sur la figure du bas, la composante périodique locale vérifie bien les contraintes demandées, avec ses valeurs nulles aux bords.</p>
<p>Même s'il reste des oscillations locales, nous constatons tout de même que la composante tendancielle est devenue suffisamment lisse pour récupérer une forme de monotonie.</p>
<p>Même s'il reste des oscillations locales, nous constatons tout de même que la composante tendancielle est devenue suffisamment lisse pour récupérer une forme de monotonie.</p>
<p>Par ailleurs, s'il est clair que la tendance est à l'augmentation, on voit toutefois que l'incertitude sur les paramètres n'est pas complètement négligeable. L'incertitude sur <span class="math">$\beta$</span> est en particulier de nature à engendrer une perte de prédictibilité du modèle en temps long.</p>
<p>Par ailleurs, s'il est clair que la tendance est à l'augmentation, on voit toutefois que l'incertitude sur les paramètres n'est pas complètement négligeable. L'incertitude sur <span class="math">$\beta$</span> est en particulier de nature à engendrer une perte de prédictibilité du modèle en temps long.</p>
<p>On voit que la forme annuelle semble bien reproduite sur les 5 premières années, pour lesquelles il est possible de comparer les prédictions avec les mesures réelles. En revanche, la tendance ne colle que sur les deux premières années d'extrapolation ; on observe un décalage significatif et croissant ensuite.</p>
<p>On voit que la forme annuelle semble bien reproduite sur les 5 premières années, pour lesquelles il est possible de comparer les prédictions avec les mesures réelles. En revanche, la tendance ne colle que sur les deux premières années d'extrapolation ; on observe un décalage significatif et croissant ensuite.</p>
<p>En reprenant l'analyse précédente, ce nouveau modèle donne les prédictions suivantes, qui collent quasi-parfaitement aux mesures dans la période de test :</p>
<p>En reprenant l'analyse précédente, ce nouveau modèle donne les prédictions suivantes, qui collent quasi-parfaitement aux mesures dans la période de test :</p>
<p>Je n'ai aucune idée de la signification qu'il est possible de donner à ces valeurs de paramètres, aussi est-il sans doute préférable de conserver, au moins dans un premier temps, l'interprétation donnée par le modèle quadratique simple (quoi que donnant des prédictions plus éloignées des données).</p>
<p>Je n'ai aucune idée de la signification qu'il est possible de donner à ces valeurs de paramètres, aussi est-il sans doute préférable de conserver, au moins dans un premier temps, l'interprétation donnée par le modèle quadratique simple (quoi que donnant des prédictions plus éloignées des données).</p>
<h1>Conclusions</h1>
<p>Dans cette étude, nous avons tenté de proposer une analyse (reproductible) de la courbe de Keeling, qui suit les variations de la concentration atmosphérique en CO2 depuis 1959 à Hawaï. La courbe est décomposée en une composante tendancielle à laquelle se superposent des variations périodiques annuelles. La coomposante tendancielle montre clairement un comportement d'augmentation sur le long terme. Une caractérisation de cette tendance sous forme de modèle quadratique fait apparaître des taux d'accroissement de l'ordre de 0.8 ppm/an en 1959, qui s'accélèrent pour monter à environ 1.5 ppm/an en 2015. Les taux d'accroissement trouvés ici peuvent être comparés aux taux de 0.75 ppm/an (1959) et 2.25 ppm/an (2015) trouvés dans la littérature [<a href="https://scripps.ucsd.edu/programs/keelingcurve/2015/02/12/is-the-rate-of-co2-growth-slowing-or-speeding-up/">monroe2015</a>]. Il serait intéressant de pousser la comparaison entre ces deux travaux plus avant, afin de comprendre l'origine des écarts significatifs (de l'ordre de 30%) sur les taux d'accroissements de 2015.</p>
<p>Par ailleurs, nous avons dans cette étude proposé une validation du modèle utilisant les 5 dernières années de mesures comme données de test. Une extrapolation sur les 5 prochaines années (2020-2025) est aussi proposée. Il convient de noter ici que l'utilisation de techniques poussées de calage de paramètre semble de prime abord donner des estimations plus prédictives. Une autre perspective de ce travail pourrait être d'interpréter et valider l'utilisation de telles techniques dans ce contexte.</p>
<p>Ce document a été réalisé à l'occasion du <ahref="https://www.fun-mooc.fr/courses/course-v1:inria+41016+self-paced/info">MOOC "Recherche Reproductible"</a>. Il accompagne l'<ahref="exercice.html">analyse de la concentration de CO2 dans l'atmosphère depuis 1958</a> et détaille les étapes nécessaires pour rejouer l'étude.</p>
<p>Ce document a été réalisé à l'occasion du <ahref="https://www.fun-mooc.fr/courses/course-v1:inria+41016+self-paced/info">MOOC "Recherche Reproductible"</a>. Il accompagne l'<ahref="exercice.html">analyse de la concentration de CO2 dans l'atmosphère depuis 1958</a> et détaille les étapes nécessaires pour rejouer l'étude.</p>
<p>Un lecteur peut se contenter de lire le document généré par l'analyse, et devrait y trouver les détails suffisants pour comprendre ce qui a été fait. Pour les plus courageux, il est aussi possible d'aller plus loin en rejouant tous les calculs de l'analyse ; ce document détaille comment.</p>
<p>Un lecteur peut se contenter de lire le document généré par l'analyse, et devrait y trouver les détails suffisants pour comprendre ce qui a été fait. Pour les plus courageux, il est aussi possible d'aller plus loin en rejouant tous les calculs de l'analyse ; ce document détaille comment.</p>
<p>Cette analyse est développée en langage <ahref="http://julialang.org/">Julia</a> et s'appuie sur un "environnement", c'est à dire un ensemble de paquets de l'écosystème Julia implémentant diverses fonctionnalités d'analyse de données. La première étape consistera donc à installer ces divers composants logiciels. Dans la deuxième partie de ce document, nous verrons comment re-jouer l'analyse. Le lecteur intéressé pourra alors re-jouer tous les calculs sur sa propre machine, voire tester l'effet de ses propres modifications dans le document computationnel <ahref="exercice.jmd"><code>exercice.jmd</code></a>. Ce processus peut être long et frustrant ; aussi proposons nous dans une dernière partie une étape de compilation optionnelle que le lecteur intéressé pourrait suivre afin d'améliorer les performances du rendu de l'analyse, et ainsi rendre plus efficaces les cycles de modification / test du document computationnel.</p>
<p>Tous les fichiers nécessaires à l'analyse sont disponibles dans un dépôt git, qu'il s'agira en premier lieu de récupérer localement. Les calculs ont été développés en langage <ahref="http://julialang.org/">Julia</a> et s'appuie sur un "environnement", c'est à dire un ensemble de paquets de l'écosystème Julia implémentant diverses fonctionnalités d'analyse de données. La deuxième étape consistera donc à installer ces divers composants logiciels. Dans la troisième partie de ce document, nous verrons comment re-jouer l'analyse. Le lecteur intéressé pourra alors re-jouer tous les calculs sur sa propre machine, voire tester l'effet de ses propres modifications dans le document computationnel <ahref="exercice.jmd"><code>exercice.jmd</code></a>. Ce processus peut être long et frustrant ; aussi proposons nous dans une dernière partie une étape de compilation optionnelle que le lecteur intéressé pourrait suivre afin d'améliorer les performances du rendu de l'analyse, et ainsi rendre plus efficaces les cycles de modification / test du document computationnel. Nous y donnons aussi quelques pointeurs vers la documentation utile.</p>
<h1>Récupération des fichiers</h1>
<h2>Via git</h2>
<p>Tous les fichiers nécessaires pour la reproduction de l'<ahref="exercice.html">analyse de la concentration de CO2 dans l'atmosphère depuis 1958</a> sont stockés dans un dépôt git disponible à l'url suivante :</p>
<p>Ceci permettra par la suite d'apporter des modifications à l'étude, et de les reverser à travers une "Pull Request".</p>
<h2>Par téléchargement direct</h2>
<p>S'il n'est pas envisagé de reverser d'éventuelles modifications apportées à cette étude, il est aussi possible de télécharger directement les fichiers depuis gitlab sous forme d'une archive au format zip ou tgz :</p>
<p>Au sein du dépôt git, les fichiers concernant l'analyse sont contenus dans le répertoire <code>module3/exo3/</code>. Il est suggéré à partir de maintenant de consulter le présent document (<code>module3/exo3/repro.html</code>) directement depuis votre répertoire de travail local.</p>
<h1>Installation préalable</h1>
<h1>Installation préalable</h1>
<p>Les étapes listées dans cette partie n'ont vocation à être réalisées qu'une seule fois, pour installer les logiciels requis sur votre machine.</p>
<p>Les étapes listées dans cette partie n'ont vocation à être réalisées qu'une seule fois, pour installer les logiciels requis sur votre machine.</p>
<h2>Julia</h2>
<h2>Julia</h2>
...
@@ -729,7 +746,7 @@ Precompiling project...
...
@@ -729,7 +746,7 @@ Precompiling project...
<ul>
<ul>
<li><p>Dans la commande <code>include(raw("...Tools.jl"))</code>, n'oubliez pas d'adapter le chemin du fichier <ahref="Tools.jl"><code>Tools.jl</code></a>. Si vous êtes en train de visualiser ce document avec un navigateur web, vous pouvez par exemple récupérer ce chemin dans le lien ci-dessus à l'aide d'un simple "clic-droit > copier l'adresse du lien"(n'oubliez pas d'enlever le préfixe "<code>file://</code>" si vous faites cela !).</p>
<li><p>Dans la commande <code>include(raw("...Tools.jl"))</code>, n'oubliez pas d'adapter le chemin du fichier <ahref="Tools.jl"><code>Tools.jl</code></a>. Si vous êtes en train de visualiser ce document avec un navigateur web, vous pouvez par exemple récupérer ce chemin dans le lien ci-dessus à l'aide d'un simple "clic-droit > copier l'adresse du lien"(n'oubliez pas d'enlever le préfixe "<code>file://</code>" si vous faites cela !).</p>
</li>
</li>
<li><p>Cette étape nécessite une connexion Internet afin de télécharger les paquets requis. Elle peut durer quelques minutes.</p>
<li><p>Cette étape nécessite une connexion Internet afin de télécharger les paquets requis. Elle peut durer quelques minutes(et semble particulièrement longue sur les systèmes Windows où nous l'avons testée).</p>
</li>
</li>
<li><p>Vous pouvez garder votre console Julia ouverte pour la ré-utiliser pour les prochaines étapes.</p>
<li><p>Vous pouvez garder votre console Julia ouverte pour la ré-utiliser pour les prochaines étapes.</p>
<li><p>Vous pouvez garder votre console ouverte pour la ré-utiliser ultérieurement si nécessaire.</p>
<li><p>Vous pouvez garder votre console ouverte pour la ré-utiliser ultérieurement si nécessaire.</p>
</li>
</li>
</ul>
</ul>
<h1>(Optionnellement) compilation des paquets de l'environnement</h1>
<h1>Modification de l'étude</h1>
<p>Vous pouvez tester dès maintenant vos idées en apportant des modifications au fichier <code>exercice.jmd</code> et en re-générant son rendu HTML selon les instructions de la partie précédente.</p>
<p>Vous pouvez tester dès maintenant vos idées en apportant des modifications au fichier <code>exercice.jmd</code> et en re-générant son rendu HTML selon les instructions de la partie précédente.</p>
<p>Nous voyons dans cette partie comment améliorer la productivité de ce genre de tests en compilant les paquets Julia utilisés dans l'étude pour rendre leur utilisation plus performante.</p>
<h2>(Optionnellement) compilation des paquets de l'environnement</h2>
<p>La (re)-génération du rendu HTML prend pour l'instant quelques minutes, ce qui rend les cycles modification/test assez longs et pénibles. Nous voyons dans cette partie comment améliorer la productivité de ce genre de tests en compilant les paquets Julia utilisés dans l'étude pour rendre leur utilisation plus performante.</p>
<h2>Quelques pointeurs vers la documentation des outils utilisés</h2>
<p>Tous les calculs présentés dans l'étude sont réalisés en langage Julia. On pourra se référer au <ahref="https://docs.julialang.org/">manuel du langage Julia</a> afin de trouver de la documentation générale sur le langage.</p>
<p>Le format utilisé pour le <ahref="exercice.jmd">document computationnel</a> est celui de <code>Weave.jl</code>, dont la <ahref="http://weavejl.mpastell.com/stable/">documentation</a> est disponible en ligne.</p>