<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>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>L'ensemble des briques logicielles sur lesquelles s'appuie notre analyse constitue un "environnement", décrit de manière succincte dans le fichier <ahref="Project.toml"><code>Project.toml</code></a> et plus détaillée dans le fichier <ahref="Manifest.toml"><code>Manifest.toml</code></a>. Les paquets logiciels compris dans cet environnement peuvent être installés en tapant les deux commandes suivantes dans la console Julia :</p>
<p>L'ensemble des briques logicielles sur lesquelles s'appuie notre analyse constitue un "environnement", décrit de manière succincte dans le fichier <ahref="Project.toml"><code>Project.toml</code></a> et plus détaillée dans le fichier <ahref="Manifest.toml"><code>Manifest.toml</code></a>. Les paquets logiciels compris dans cet environnement peuvent être installés en tapant les deux commandes suivantes dans la console Julia :</p>
<li><p>Dans la commande <code>include(raw("...utils.jl"))</code>, n'oubliez pas d'adapter le chemin du fichier <code>utils.jl</code>. Si vous êtes en train de visualiser ce document avec un navigateur web, vous pouvez probablement récupérer le chemin correspondant dans la barre d'URL et la copier-coller. Notez que dans la console Julia sous windows, on "colle" avec un clic droit de la souris.</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.</p>
<p>Le document computationnel de l'étude est constitué par le fichier <ahref="exercice.jmd"><code>exercice.jmd</code></a>, qui entremêle commentaires (en langage Markdown) et code (en langage Julia).</p>
<p>Le document computationnel de l'étude est constitué par le fichier <ahref="exercice.jmd"><code>exercice.jmd</code></a>, qui entremêle commentaires (en langage Markdown) et code (en langage Julia).</p>
<p>Ce document computationnel peut être rendu au format HTML, pour générer la sortie <ahref="exercice.html"><code>exercice.html</code></a>, dans laquelle le code julia a été exécuté et les résultats produits sont visualisés. Tout ceci est pris en charge par le paquet Julia <ahref="https://github.com/JunoLab/Weave.jl">Weave</a>, qui fournit un service similaire à <ahref="https://yihui.org/knitr/">knitr</a> pour le langage R ou <ahref="http://mpastell.com/pweave">Pweave</a> pour Python.</p>
<p>Ce document computationnel peut être rendu au format HTML, pour générer la sortie <ahref="exercice.html"><code>exercice.html</code></a>, dans laquelle le code julia a été exécuté et les résultats produits sont visualisés. Tout ceci est pris en charge par le paquet Julia <ahref="https://github.com/JunoLab/Weave.jl">Weave</a>, qui fournit un service similaire à <ahref="https://yihui.org/knitr/">knitr</a> pour le langage R ou <ahref="http://mpastell.com/pweave">Pweave</a> pour Python.</p>
<p>Pour (re-)générer ce document HTML, les commandes suivantes doivent être entrées dans la console Julia :</p>
<p>Pour (re-)générer ce document HTML, les commandes suivantes doivent être entrées dans la console Julia :</p>
<li><p>Il est inutile de ré-exécuter la ligne <code>include(...)</code> si vous utilisez la même console que dans les étapes précédentes.</p>
<li><p>Il est inutile de ré-exécuter la ligne <code>include(...)</code> si vous utilisez la même console que dans les étapes précédentes.</p>
</li>
</li>
<li><p>Cette étape peut durer quelques minutes ; nous verrons dans la prochaine partie comment accélérer ce processus si vous prévoyez de réaliser et tester des modifications dans le document computationnel.</p>
<li><p>Cette étape peut durer une minute ou deux ; nous verrons dans la prochaine partie comment accélérer ce processus si vous prévoyez de réaliser et tester des modifications dans le document computationnel.</p>
</li>
</li>
<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>
<h1>(Optionnellement) compilation des paquets de l'environnement</h1>
<h1>(Optionnellement) compilation des paquets de l'environnement</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>
<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>
Activating environment at `~/mooc/mooc-rr/module3/exo3/Project.toml`
<p>A partir de maintenant, le processus de génération du rendu HTML devrait être accéléré de manière substantielle, pour ne prendre que quelques secondes :</p>
Activating environment at `~/mooc/mooc-rr/module3/exo3/Project.toml`
<pre><code>julia> Exercice.weave()
[ Info: Writing to file exercice.jl
...
[ Info: PackageCompiler: creating system image object file, this might take a while...
<p>Prévoyez d'aller boire un café : cette étape peut durer une bonne dizaine de minutes. A la fin, cette phase de compilation devrait avoir généré un nouveau fichier <code>Exercice.so</code> dans le répertoire de l'étude. A partir de maintenant, le processus de génération du rendu HTML devrait être accéléré de manière substantielle, pour ne prendre que quelques secondes :</p>
<pre><code>julia> Tools.weave()
[ Info: Using custom system image: Exercice.so
Activating environment at `.../Project.toml`
Activating environment at `.../Project.toml`