Commit 1bb1911b authored by François Févotte's avatar François Févotte

Ex 03-3 - Version finale

parent b5fef2cb
...@@ -714,10 +714,12 @@ Julia Version 1.4.0 ...@@ -714,10 +714,12 @@ Julia Version 1.4.0
Commit b8e9a9ecc6 (2020-03-21 16:36 UTC) Commit b8e9a9ecc6 (2020-03-21 16:36 UTC)
Platform Info: Platform Info:
OS: Linux (x86_64-pc-linux-gnu) OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz CPU: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
WORD_SIZE: 64 WORD_SIZE: 64
LIBM: libopenlibm LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, skylake) LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
Environment:
JULIA_PROJECT = @.
</pre> </pre>
...@@ -735,7 +737,7 @@ Platform Info: ...@@ -735,7 +737,7 @@ Platform Info:
<pre class="output"> <pre class="output">
Project Exercice v0.1.0 Project Exercice v0.1.0
Status &#96;~/mooc/mooc-rr/module3/exo3/Project.toml&#96; Status &#96;~/tmp/MOOC-RR/module3/exo3/Project.toml&#96;
&#91;336ed68f&#93; CSV v0.6.1 &#91;336ed68f&#93; CSV v0.6.1
&#91;a93c6f00&#93; DataFrames v0.20.2 &#91;a93c6f00&#93; DataFrames v0.20.2
&#91;82cc6244&#93; DataInterpolations v2.0.0 &#91;82cc6244&#93; DataInterpolations v2.0.0
...@@ -946,9 +948,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -946,9 +948,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<p>Une visualisation de l&#39;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&#39;ensemble des données semble montrer une augmentation tendancielle de la concentration en CO2, à laquelle se superpose une oscillation à plus haute fréquence.</p>
<div id="0931e72e-7523-4f49-a546-0816262b88e6" style="width:576px;height:384px;"></div> <div id="8b17e303-ff69-45e0-9665-719d89723913" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('0931e72e-7523-4f49-a546-0816262b88e6'); PLOT = document.getElementById('8b17e303-ff69-45e0-9665-719d89723913');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -7423,9 +7425,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -7423,9 +7425,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<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&#39;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&#39;octobre.</p>
<div id="6318c333-3da2-4565-838d-9419d232035b" style="width:576px;height:384px;"></div> <div id="907298aa-007a-4dfb-a436-ec85a6ff76ef" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('6318c333-3da2-4565-838d-9419d232035b'); PLOT = document.getElementById('907298aa-007a-4dfb-a436-ec85a6ff76ef');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -8003,9 +8005,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -8003,9 +8005,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<p>En zoomant sur les données interpolées autour de l&#39;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&#39;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>
<div id="4576d633-4b0f-4730-b957-0c9fec2ae945" style="width:576px;height:384px;"></div> <div id="c0a7086c-e206-4665-a3d3-19d5a73d0cf7" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('4576d633-4b0f-4730-b957-0c9fec2ae945'); PLOT = document.getElementById('c0a7086c-e206-4665-a3d3-19d5a73d0cf7');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -8275,8 +8277,8 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -8275,8 +8277,8 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<pre class='hljl'> <pre class='hljl'>
<span class='hljl-n'>firstyear</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>minimum</span><span class='hljl-p'>(</span><span class='hljl-n'>data_interp</span><span class='hljl-oB'>.</span><span class='hljl-n'>year</span><span class='hljl-p'>)</span><span class='hljl-oB'>+</span><span class='hljl-ni'>1</span><span class='hljl-t'> <span class='hljl-n'>firstyear</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>minimum</span><span class='hljl-p'>(</span><span class='hljl-n'>data_interp</span><span class='hljl-oB'>.</span><span class='hljl-n'>year</span><span class='hljl-p'>)</span><span class='hljl-oB'>+</span><span class='hljl-ni'>1</span><span class='hljl-t'> </span><span class='hljl-cs'># Première année incomplète</span><span class='hljl-t'>
</span><span class='hljl-n'>lastyear</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>maximum</span><span class='hljl-p'>(</span><span class='hljl-n'>data_interp</span><span class='hljl-oB'>.</span><span class='hljl-n'>year</span><span class='hljl-p'>)</span><span class='hljl-oB'>-</span><span class='hljl-ni'>6</span><span class='hljl-t'> </span><span class='hljl-n'>lastyear</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>maximum</span><span class='hljl-p'>(</span><span class='hljl-n'>data_interp</span><span class='hljl-oB'>.</span><span class='hljl-n'>year</span><span class='hljl-p'>)</span><span class='hljl-oB'>-</span><span class='hljl-ni'>6</span><span class='hljl-t'> </span><span class='hljl-cs'># Dernière année incomplète + 5 années de test</span><span class='hljl-t'>
</span><span class='hljl-n'>idx</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>data_interp</span><span class='hljl-oB'>.</span><span class='hljl-n'>year</span><span class='hljl-oB'>.&gt;=</span><span class='hljl-n'>firstyear</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>.&amp;</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>data_interp</span><span class='hljl-oB'>.</span><span class='hljl-n'>year</span><span class='hljl-oB'>.&lt;=</span><span class='hljl-n'>lastyear</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-n'>idx</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>data_interp</span><span class='hljl-oB'>.</span><span class='hljl-n'>year</span><span class='hljl-oB'>.&gt;=</span><span class='hljl-n'>firstyear</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>.&amp;</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>data_interp</span><span class='hljl-oB'>.</span><span class='hljl-n'>year</span><span class='hljl-oB'>.&lt;=</span><span class='hljl-n'>lastyear</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>data</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>data_interp</span><span class='hljl-p'>[</span><span class='hljl-n'>idx</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-oB'>:</span><span class='hljl-p'>];</span><span class='hljl-t'> </span><span class='hljl-n'>data</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>data_interp</span><span class='hljl-p'>[</span><span class='hljl-n'>idx</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-oB'>:</span><span class='hljl-p'>];</span><span class='hljl-t'>
...@@ -8291,9 +8293,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -8291,9 +8293,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<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&#39;ont donc pas d&#39;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&#39;ont donc pas d&#39;impact significatif de ce point de vue là.</p>
<div id="d9fe71d7-2577-46b1-8b94-84132faacb6a" style="width:576px;height:384px;"></div> <div id="8401a09c-40fd-4112-ba84-a0cd81ee089a" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('d9fe71d7-2577-46b1-8b94-84132faacb6a'); PLOT = document.getElementById('8401a09c-40fd-4112-ba84-a0cd81ee089a');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -8791,14 +8793,14 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -8791,14 +8793,14 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<h2>Analyse des variations annuelles</h2> <h2>Analyse des variations annuelles</h2>
<p>Pour chaque année, on commence par tenter d&#39;extraire la composante oscillante de la mesure. Si l&#39;on note <span class="math">$C_a$</span> la concentration en CO2 durant l&#39;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&#39;extraire la composante oscillante de la mesure. Si l&#39;on note <span class="math">$C_a(d)$</span> la concentration en CO2 le jour numéro <span class="math">$d$</span> de l&#39;année <span class="math">$a$</span>, on cherche à écrire :</p>
<p class="math">\[ <p class="math">\[
\forall d\in{0\ldots365}, \quad \forall d\in{0\ldots365}, \quad
C_a(d) C_a(d)
= \underbrace{\theta_a(d)}_{\text{tendance locale}} = \underbrace{\theta_a(d)}_{\text{tendance locale}}
+ \underbrace{\phi_a(d)}_{\text{forme locale}} + \underbrace{\phi_a(d)}_{\text{forme locale}}
\]</p> \]</p>
<p>ce qui correspond à une version locale de l&#39;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&#39;année <span class="math">$a$</span>.</p> <p>ce qui correspond à une version locale &#40;pour l&#39;année <span class="math">$a$</span>&#41; de l&#39;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&#39;année <span class="math">$a$</span>.</p>
<p>Cherchant une tendance d&#39;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&#39;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 class="math">\[ <p class="math">\[
\theta_a(d) = \alpha_a + \beta_a \, d. \theta_a(d) = \alpha_a + \beta_a \, d.
...@@ -8840,9 +8842,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -8840,9 +8842,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<p>Examinons par exemple l&#39;effet de ce traitement sur les données interpolées de l&#39;année 1982. On voit, sur la figure du haut, les mesures brutes ainsi que la tendance locale &#40;affine&#41;. 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&#39;effet de ce traitement sur les données interpolées de l&#39;année 1982. On voit, sur la figure du haut, les mesures brutes ainsi que la tendance locale &#40;affine&#41;. Sur la figure du bas, la composante périodique locale vérifie bien les contraintes demandées, avec ses valeurs nulles aux bords.</p>
<div id="c84526ce-6bf0-44c1-8f34-f06d50884815" style="width:576px;height:384px;"></div> <div id="b0206a1f-752e-48b0-ae14-773798db3946" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('c84526ce-6bf0-44c1-8f34-f06d50884815'); PLOT = document.getElementById('b0206a1f-752e-48b0-ae14-773798db3946');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -11356,9 +11358,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -11356,9 +11358,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<p>Et nous traçons l&#39;ensemble des composantes oscillantes locales aux côtés de cette moyenne.</p> <p>Et nous traçons l&#39;ensemble des composantes oscillantes locales aux côtés de cette moyenne.</p>
<div id="cbb2c659-d933-4109-b0cd-7cfdf2f8490f" style="width:576px;height:384px;"></div> <div id="70b2b882-4a54-4de5-be4e-9f3f19add7cf" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('cbb2c659-d933-4109-b0cd-7cfdf2f8490f'); PLOT = document.getElementById('70b2b882-4a54-4de5-be4e-9f3f19add7cf');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -54763,9 +54765,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41; ...@@ -54763,9 +54765,9 @@ Missing data: 2012-09-29 - 2012-10-20 &#40;21 days&#41;
<p>Même s&#39;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&#39;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>
<div id="67774a95-e6ad-4752-aa0d-4004b98b3c62" style="width:576px;height:384px;"></div> <div id="1a89fb62-2ba3-4a3b-863c-7936c998cc55" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('67774a95-e6ad-4752-aa0d-4004b98b3c62'); PLOT = document.getElementById('1a89fb62-2ba3-4a3b-863c-7936c998cc55');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -135398,9 +135400,9 @@ date_num ^ 2 9.10059e-8 2.66606e-9 34.135 &lt;1e-37 8.56585e-8 ...@@ -135398,9 +135400,9 @@ date_num ^ 2 9.10059e-8 2.66606e-9 34.135 &lt;1e-37 8.56585e-8
<p>Par ailleurs, s&#39;il est clair que la tendance est à l&#39;augmentation, on voit toutefois que l&#39;incertitude sur les paramètres n&#39;est pas complètement négligeable. L&#39;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&#39;il est clair que la tendance est à l&#39;augmentation, on voit toutefois que l&#39;incertitude sur les paramètres n&#39;est pas complètement négligeable. L&#39;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>
<div id="2486ee38-4b2c-4ef1-bb96-56f4075db159" style="width:576px;height:384px;"></div> <div id="ed1404dd-0747-463d-9fc2-00869e0b08c6" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('2486ee38-4b2c-4ef1-bb96-56f4075db159'); PLOT = document.getElementById('ed1404dd-0747-463d-9fc2-00869e0b08c6');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -202072,9 +202074,9 @@ date_num ^ 2 9.10059e-8 2.66606e-9 34.135 &lt;1e-37 8.56585e-8 ...@@ -202072,9 +202074,9 @@ date_num ^ 2 9.10059e-8 2.66606e-9 34.135 &lt;1e-37 8.56585e-8
], ],
"showlegend": true, "showlegend": true,
"mode": "lines", "mode": "lines",
"name": "modèle theta (IC 95%)", "name": "modèle theta (IC 95% sur beta)",
"zmin": null, "zmin": null,
"legendgroup": "modèle theta (IC 95%)", "legendgroup": "modèle theta (IC 95% sur beta)",
"zmax": null, "zmax": null,
"line": { "line": {
"color": "rgba(255, 0, 0, 1.000)", "color": "rgba(255, 0, 0, 1.000)",
...@@ -262586,9 +262588,9 @@ date_num ^ 2 9.10059e-8 2.66606e-9 34.135 &lt;1e-37 8.56585e-8 ...@@ -262586,9 +262588,9 @@ date_num ^ 2 9.10059e-8 2.66606e-9 34.135 &lt;1e-37 8.56585e-8
<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&#39;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&#39;extrapolation ; on observe un décalage significatif et croissant ensuite.</p>
<div id="a56ab5c9-608e-410e-b3bc-b262e357bf34" style="width:576px;height:384px;"></div> <div id="38471d58-e70f-48f2-81dd-37b81b17d059" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('a56ab5c9-608e-410e-b3bc-b262e357bf34'); PLOT = document.getElementById('38471d58-e70f-48f2-81dd-37b81b17d059');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -265115,9 +265117,9 @@ date_num ^ 2 -8.3699e-16 1.52956e-16 -5.47208 &lt;1e-7 -1.13678e-15 - ...@@ -265115,9 +265117,9 @@ date_num ^ 2 -8.3699e-16 1.52956e-16 -5.47208 &lt;1e-7 -1.13678e-15 -
<p>En reprenant l&#39;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&#39;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>
<div id="78878861-a121-4ee7-ae11-8387919e8c74" style="width:576px;height:384px;"></div> <div id="47ce950b-f819-489d-9c55-18d0d268f8b4" style="width:576px;height:384px;"></div>
<script> <script>
PLOT = document.getElementById('78878861-a121-4ee7-ae11-8387919e8c74'); PLOT = document.getElementById('47ce950b-f819-489d-9c55-18d0d268f8b4');
Plotly.plot(PLOT, [ Plotly.plot(PLOT, [
{ {
"xaxis": "x1", "xaxis": "x1",
...@@ -267608,6 +267610,9 @@ date_num ^ 2 -8.3699e-16 1.52956e-16 -5.47208 &lt;1e-7 -1.13678e-15 - ...@@ -267608,6 +267610,9 @@ date_num ^ 2 -8.3699e-16 1.52956e-16 -5.47208 &lt;1e-7 -1.13678e-15 -
<p>Je n&#39;ai aucune idée de la signification qu&#39;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&#39;interprétation donnée par le modèle quadratique simple &#40;quoi que donnant des prédictions plus éloignées des données&#41;.</p> <p>Je n&#39;ai aucune idée de la signification qu&#39;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&#39;interprétation donnée par le modèle quadratique simple &#40;quoi que donnant des prédictions plus éloignées des données&#41;.</p>
<h1>Conclusions</h1>
<p>Dans cette étude, nous avons tenté de proposer une analyse &#40;reproductible&#41; 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&#39;augmentation sur le long terme. Une caractérisation de cette tendance sous forme de modèle quadratique fait apparaître des taux d&#39;accroissement de l&#39;ordre de 0.8 ppm/an en 1959, qui s&#39;accélèrent pour monter à environ 1.5 ppm/an en 2015. Les taux d&#39;accroissement trouvés ici peuvent être comparés aux taux de 0.75 ppm/an &#40;1959&#41; et 2.25 ppm/an &#40;2015&#41; trouvés dans la littérature &#91;<a href="https://scripps.ucsd.edu/programs/keelingcurve/2015/02/12/is-the-rate-of-co2-growth-slowing-or-speeding-up/">monroe2015</a>&#93;. Il serait intéressant de pousser la comparaison entre ces deux travaux plus avant, afin de comprendre l&#39;origine des écarts significatifs &#40;de l&#39;ordre de 30&#37;&#41; sur les taux d&#39;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 &#40;2020-2025&#41; est aussi proposée. Il convient de noter ici que l&#39;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&#39;interpréter et valider l&#39;utilisation de telles techniques dans ce contexte.</p>
<!-- Local Variables: --> <!-- Local Variables: -->
...@@ -267627,7 +267632,7 @@ date_num ^ 2 -8.3699e-16 1.52956e-16 -5.47208 &lt;1e-7 -1.13678e-15 - ...@@ -267627,7 +267632,7 @@ date_num ^ 2 -8.3699e-16 1.52956e-16 -5.47208 &lt;1e-7 -1.13678e-15 -
<div class="footer"><p> <div class="footer"><p>
Published from <a href="exercice.jmd">exercice.jmd</a> using Published from <a href="exercice.jmd">exercice.jmd</a> using
<a href="http://github.com/mpastell/Weave.jl">Weave.jl</a> <a href="http://github.com/mpastell/Weave.jl">Weave.jl</a>
on 2020-04-15. on 2020-04-16.
<p></div> <p></div>
...@@ -400,8 +400,8 @@ données de test. Les données sur lesquelles portera l'analyse couvrent donc la ...@@ -400,8 +400,8 @@ données de test. Les données sur lesquelles portera l'analyse couvrent donc la
période 1959-2014. période 1959-2014.
```julia; results="raw" ```julia; results="raw"
firstyear = minimum(data_interp.year)+1 firstyear = minimum(data_interp.year)+1 # Première année incomplète
lastyear = maximum(data_interp.year)-6 lastyear = maximum(data_interp.year)-6 # Dernière année incomplète + 5 années de test
idx = (data_interp.year.>=firstyear) .& (data_interp.year.<=lastyear) idx = (data_interp.year.>=firstyear) .& (data_interp.year.<=lastyear)
data = data_interp[idx, :]; data = data_interp[idx, :];
...@@ -425,17 +425,18 @@ disp() ...@@ -425,17 +425,18 @@ disp()
``` ```
Pour chaque année, on commence par tenter d'extraire la composante oscillante de Pour chaque année, on commence par tenter d'extraire la composante oscillante de
la mesure. Si l'on note $C_a$ la concentration en CO2 durant l'année $a$ et la mesure. Si l'on note $C_a(d)$ la concentration en CO2 le jour numéro $d$ de
$d$ un jour de cette année, on cherche à écrire : l'année $a$, on cherche à écrire :
$$ $$
\forall d\in{0\ldots365}, \quad \forall d\in{0\ldots365}, \quad
C_a(d) C_a(d)
= \underbrace{\theta_a(d)}_{\text{tendance locale}} = \underbrace{\theta_a(d)}_{\text{tendance locale}}
+ \underbrace{\phi_a(d)}_{\text{forme locale}} + \underbrace{\phi_a(d)}_{\text{forme locale}}
$$ $$
ce qui correspond à une version locale de l'expression globale cherchée pour la ce qui correspond à une version locale (pour l'année $a$) de l'expression
variation de concentration en CO2 : $\theta_a$ et $\phi_a$ donnent globale cherchée pour la variation de concentration en CO2 : $\theta_a$ et
respectivement la tendance et la forme de la concentration pour l'année $a$. $\phi_a$ donnent respectivement la tendance et la forme de la concentration pour
l'année $a$.
Cherchant une tendance d'ordre aussi bas que possible, nous supposons que Cherchant une tendance d'ordre aussi bas que possible, nous supposons que
$\theta_a$ peut être approchée par un modèle affine à cette échelle de temps $\theta_a$ peut être approchée par un modèle affine à cette échelle de temps
...@@ -617,8 +618,10 @@ data.theta_pred = predict(model, data) ...@@ -617,8 +618,10 @@ data.theta_pred = predict(model, data)
plot(xlabel="Date", ylabel="CO2 [ppm]") plot(xlabel="Date", ylabel="CO2 [ppm]")
plot!(data_raw.date, data_raw.co2, label="mesures") plot!(data_raw.date, data_raw.co2, label="mesures")
plot!(data.date, data.theta_pred, label="modèle theta", linewidth=3) plot!(data.date, data.theta_pred, label="modèle theta", linewidth=3)
plot!(data.date, α .+ β1 * data.date_num .+ γ*data.date_num.^2, linecolor="red", label="modèle theta (IC 95%)") plot!(data.date, α .+ β1 * data.date_num .+ γ*data.date_num.^2,
plot!(data.date, α .+ β2 * data.date_num .+ γ*data.date_num.^2, linecolor="red", label=nothing) linecolor="red", label="modèle theta (IC 95% sur beta)")
plot!(data.date, α .+ β2 * data.date_num .+ γ*data.date_num.^2,
linecolor="red", label=nothing)
disp() disp()
``` ```
...@@ -712,6 +715,31 @@ valeurs de paramètres, aussi est-il sans doute préférable de conserver, au mo ...@@ -712,6 +715,31 @@ valeurs de paramètres, aussi est-il sans doute préférable de conserver, au mo
dans un premier temps, l'interprétation donnée par le modèle quadratique simple 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). (quoi que donnant des prédictions plus éloignées des données).
# Conclusions
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 `j monroe2015()`. 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.
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.
<!-- Local Variables: --> <!-- Local Variables: -->
<!-- mode: markdown --> <!-- mode: markdown -->
<!-- ispell-local-dictionary: "french" --> <!-- ispell-local-dictionary: "french" -->
......
...@@ -687,7 +687,24 @@ h3:before { ...@@ -687,7 +687,24 @@ h3:before {
<p>Ce document a été réalisé à l&#39;occasion du <a href="https://www.fun-mooc.fr/courses/course-v1:inria&#43;41016&#43;self-paced/info">MOOC &quot;Recherche Reproductible&quot;</a>. Il accompagne l&#39;<a href="exercice.html">analyse de la concentration de CO2 dans l&#39;atmosphère depuis 1958</a> et détaille les étapes nécessaires pour rejouer l&#39;étude.</p> <p>Ce document a été réalisé à l&#39;occasion du <a href="https://www.fun-mooc.fr/courses/course-v1:inria&#43;41016&#43;self-paced/info">MOOC &quot;Recherche Reproductible&quot;</a>. Il accompagne l&#39;<a href="exercice.html">analyse de la concentration de CO2 dans l&#39;atmosphère depuis 1958</a> et détaille les étapes nécessaires pour rejouer l&#39;étude.</p>
<p>Un lecteur peut se contenter de lire le document généré par l&#39;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&#39;aller plus loin en rejouant tous les calculs de l&#39;analyse ; ce document détaille comment.</p> <p>Un lecteur peut se contenter de lire le document généré par l&#39;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&#39;aller plus loin en rejouant tous les calculs de l&#39;analyse ; ce document détaille comment.</p>
<p>Cette analyse est développée en langage <a href="http://julialang.org/">Julia</a> et s&#39;appuie sur un &quot;environnement&quot;, c&#39;est à dire un ensemble de paquets de l&#39;écosystème Julia implémentant diverses fonctionnalités d&#39;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&#39;analyse. Le lecteur intéressé pourra alors re-jouer tous les calculs sur sa propre machine, voire tester l&#39;effet de ses propres modifications dans le document computationnel <a href="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&#39;améliorer les performances du rendu de l&#39;analyse, et ainsi rendre plus efficaces les cycles de modification / test du document computationnel.</p> <p>Tous les fichiers nécessaires à l&#39;analyse sont disponibles dans un dépôt git, qu&#39;il s&#39;agira en premier lieu de récupérer localement. Les calculs ont été développés en langage <a href="http://julialang.org/">Julia</a> et s&#39;appuie sur un &quot;environnement&quot;, c&#39;est à dire un ensemble de paquets de l&#39;écosystème Julia implémentant diverses fonctionnalités d&#39;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&#39;analyse. Le lecteur intéressé pourra alors re-jouer tous les calculs sur sa propre machine, voire tester l&#39;effet de ses propres modifications dans le document computationnel <a href="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&#39;améliorer les performances du rendu de l&#39;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&#39;<a href="exercice.html">analyse de la concentration de CO2 dans l&#39;atmosphère depuis 1958</a> sont stockés dans un dépôt git disponible à l&#39;url suivante :</p>
<p><a href="">https://app-learninglab.inria.fr/moocrr/gitlab/3e6bf7b47a05a05ae3d6af86121dcb5d/mooc-rr.git</a></p>
<p>et qu&#39;on pourra cloner à l&#39;aide de la commande :</p>
<pre><code class="language-sh">&#36; git clone https://app-learninglab.inria.fr/moocrr/gitlab/3e6bf7b47a05a05ae3d6af86121dcb5d/mooc-rr.git</code></pre>
<p>Ceci permettra par la suite d&#39;apporter des modifications à l&#39;étude, et de les reverser à travers une &quot;Pull Request&quot;.</p>
<h2>Par téléchargement direct</h2>
<p>S&#39;il n&#39;est pas envisagé de reverser d&#39;éventuelles modifications apportées à cette étude, il est aussi possible de télécharger directement les fichiers depuis gitlab sous forme d&#39;une archive au format zip ou tgz :</p>
<ul>
<li><p><a href="https://app-learninglab.inria.fr/moocrr/gitlab/3e6bf7b47a05a05ae3d6af86121dcb5d/mooc-rr/-/archive/master/mooc-rr-master.zip">zip</a></p>
</li>
<li><p><a href="https://app-learninglab.inria.fr/moocrr/gitlab/3e6bf7b47a05a05ae3d6af86121dcb5d/mooc-rr/-/archive/master/mooc-rr-master.tar.gz">tgz</a></p>
</li>
</ul>
<h2>Répertoire de l&#39;étude</h2>
<p>Au sein du dépôt git, les fichiers concernant l&#39;analyse sont contenus dans le répertoire <code>module3/exo3/</code>. Il est suggéré à partir de maintenant de consulter le présent document &#40;<code>module3/exo3/repro.html</code>&#41; 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&#39;ont vocation à être réalisées qu&#39;une seule fois, pour installer les logiciels requis sur votre machine.</p> <p>Les étapes listées dans cette partie n&#39;ont vocation à être réalisées qu&#39;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&#40;raw&#40;&quot;...Tools.jl&quot;&#41;&#41;</code>, n&#39;oubliez pas d&#39;adapter le chemin du fichier <a href="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&#39;aide d&#39;un simple &quot;clic-droit &gt; copier l&#39;adresse du lien&quot; &#40;n&#39;oubliez pas d&#39;enlever le préfixe &quot;<code>file://</code>&quot; si vous faites cela &#33;&#41;.</p> <li><p>Dans la commande <code>include&#40;raw&#40;&quot;...Tools.jl&quot;&#41;&#41;</code>, n&#39;oubliez pas d&#39;adapter le chemin du fichier <a href="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&#39;aide d&#39;un simple &quot;clic-droit &gt; copier l&#39;adresse du lien&quot; &#40;n&#39;oubliez pas d&#39;enlever le préfixe &quot;<code>file://</code>&quot; si vous faites cela &#33;&#41;.</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 &#40;et semble particulièrement longue sur les systèmes Windows où nous l&#39;avons testée&#41;.</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> </li>
...@@ -759,9 +776,10 @@ julia&gt; Tools.weave&#40;&#41; ...@@ -759,9 +776,10 @@ julia&gt; Tools.weave&#40;&#41;
<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>&#40;Optionnellement&#41; compilation des paquets de l&#39;environnement</h1> <h1>Modification de l&#39;é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&#39;étude pour rendre leur utilisation plus performante.</p> <h2>&#40;Optionnellement&#41; compilation des paquets de l&#39;environnement</h2>
<p>La &#40;re&#41;-génération du rendu HTML prend pour l&#39;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&#39;étude pour rendre leur utilisation plus performante.</p>
<pre><code>julia&gt; include&#40;raw&quot;C:\Users\francois\Desktop\mooc-rr\module3\exo3\Tools.jl&quot;&#41; <pre><code>julia&gt; include&#40;raw&quot;C:\Users\francois\Desktop\mooc-rr\module3\exo3\Tools.jl&quot;&#41;
julia&gt; Tools.compile&#40;&#41; julia&gt; Tools.compile&#40;&#41;
...@@ -783,6 +801,9 @@ julia&gt; Tools.compile&#40;&#41; ...@@ -783,6 +801,9 @@ julia&gt; Tools.compile&#40;&#41;
... ...
&#91; Info: Report weaved to exercice.html &#91; Info: Report weaved to exercice.html
7.262408 seconds &#40;65 allocations: 2.656 KiB&#41;</code></pre> 7.262408 seconds &#40;65 allocations: 2.656 KiB&#41;</code></pre>
<h2>Quelques pointeurs vers la documentation des outils utilisés</h2>
<p>Tous les calculs présentés dans l&#39;étude sont réalisés en langage Julia. On pourra se référer au <a href="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 <a href="exercice.jmd">document computationnel</a> est celui de <code>Weave.jl</code>, dont la <a href="http://weavejl.mpastell.com/stable/">documentation</a> est disponible en ligne.</p>
<!-- Local Variables: --> <!-- Local Variables: -->
...@@ -802,7 +823,7 @@ julia&gt; Tools.compile&#40;&#41; ...@@ -802,7 +823,7 @@ julia&gt; Tools.compile&#40;&#41;
<div class="footer"><p> <div class="footer"><p>
Published from <a href="repro.jmd">repro.jmd</a> using Published from <a href="repro.jmd">repro.jmd</a> using
<a href="http://github.com/mpastell/Weave.jl">Weave.jl</a> <a href="http://github.com/mpastell/Weave.jl">Weave.jl</a>
on 2020-04-15. on 2020-04-16.
<p></div> <p></div>
......
...@@ -17,18 +17,59 @@ devrait y trouver les détails suffisants pour comprendre ce qui a été fait. P ...@@ -17,18 +17,59 @@ devrait y trouver les détails suffisants pour comprendre ce qui a été fait. P
les plus courageux, il est aussi possible d'aller plus loin en rejouant tous les les plus courageux, il est aussi possible d'aller plus loin en rejouant tous les
calculs de l'analyse ; ce document détaille comment. calculs de l'analyse ; ce document détaille comment.
Cette analyse est développée en langage [Julia](http://julialang.org/) et Tous les fichiers nécessaires à l'analyse sont disponibles dans un dépôt git,
s'appuie sur un "environnement", c'est à dire un ensemble de paquets de qu'il s'agira en premier lieu de récupérer localement. Les calculs ont été
l'écosystème Julia implémentant diverses fonctionnalités d'analyse de développés en langage [Julia](http://julialang.org/) et s'appuie sur un
données. La première étape consistera donc à installer ces divers composants "environnement", c'est à dire un ensemble de paquets de l'écosystème Julia
logiciels. Dans la deuxième partie de ce document, nous verrons comment re-jouer implémentant diverses fonctionnalités d'analyse de données. La deuxième étape
l'analyse. Le lecteur intéressé pourra alors re-jouer tous les calculs sur sa consistera donc à installer ces divers composants logiciels. Dans la troisième
propre machine, voire tester l'effet de ses propres modifications dans le partie de ce document, nous verrons comment re-jouer l'analyse. Le lecteur
document computationnel [`exercice.jmd`](exercice.jmd). Ce processus peut être intéressé pourra alors re-jouer tous les calculs sur sa propre machine, voire
long et frustrant ; aussi proposons nous dans une dernière partie une étape de tester l'effet de ses propres modifications dans le document computationnel
compilation optionnelle que le lecteur intéressé pourrait suivre afin [`exercice.jmd`](exercice.jmd). Ce processus peut être long et frustrant ; aussi
d'améliorer les performances du rendu de l'analyse, et ainsi rendre plus proposons nous dans une dernière partie une étape de compilation optionnelle que
efficaces les cycles de modification / test du document computationnel. 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.
# Récupération des fichiers
## Via git
Tous les fichiers nécessaires pour la reproduction de l'[analyse de la concentration de CO2 dans l'atmosphère depuis
1958](exercice.html) sont stockés dans un dépôt git disponible à l'url suivante
:
[https://app-learninglab.inria.fr/moocrr/gitlab/3e6bf7b47a05a05ae3d6af86121dcb5d/mooc-rr.git]()
et qu'on pourra cloner à l'aide de la commande :
```sh
$ git clone https://app-learninglab.inria.fr/moocrr/gitlab/3e6bf7b47a05a05ae3d6af86121dcb5d/mooc-rr.git
```
Ceci permettra par la suite d'apporter des modifications à l'étude, et de les
reverser à travers une "Pull Request".
## Par téléchargement direct
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 :
- [zip](https://app-learninglab.inria.fr/moocrr/gitlab/3e6bf7b47a05a05ae3d6af86121dcb5d/mooc-rr/-/archive/master/mooc-rr-master.zip)
- [tgz](https://app-learninglab.inria.fr/moocrr/gitlab/3e6bf7b47a05a05ae3d6af86121dcb5d/mooc-rr/-/archive/master/mooc-rr-master.tar.gz)
## Répertoire de l'étude
Au sein du dépôt git, les fichiers concernant l'analyse sont contenus dans le
répertoire `module3/exo3/`. Il est suggéré à partir de maintenant de consulter
le présent document (`module3/exo3/repro.html`) directement depuis votre
répertoire de travail local.
# Installation préalable # Installation préalable
...@@ -93,7 +134,8 @@ Precompiling project... ...@@ -93,7 +134,8 @@ Precompiling project...
faites cela !). faites cela !).
- Cette étape nécessite une connexion Internet afin de télécharger les paquets - Cette étape nécessite une connexion Internet afin de télécharger les paquets
requis. Elle peut durer quelques minutes. requis. Elle peut durer quelques minutes (et semble particulièrement longue
sur les systèmes Windows où nous l'avons testée).
- Vous pouvez garder votre console Julia ouverte pour la ré-utiliser pour les - Vous pouvez garder votre console Julia ouverte pour la ré-utiliser pour les
prochaines étapes. prochaines étapes.
...@@ -142,16 +184,19 @@ julia> Tools.weave() ...@@ -142,16 +184,19 @@ julia> Tools.weave()
nécessaire. nécessaire.
# (Optionnellement) compilation des paquets de l'environnement # Modification de l'étude
Vous pouvez tester dès maintenant vos idées en apportant des modifications au Vous pouvez tester dès maintenant vos idées en apportant des modifications au
fichier `exercice.jmd` et en re-générant son rendu HTML selon les instructions fichier `exercice.jmd` et en re-générant son rendu HTML selon les instructions
de la partie précédente. de la partie précédente.
Nous voyons dans cette partie comment améliorer la productivité de ce genre de ## (Optionnellement) compilation des paquets de l'environnement
tests en compilant les paquets Julia utilisés dans l'étude pour rendre leur
utilisation plus performante.
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.
``` ```
julia> include(raw"C:\Users\francois\Desktop\mooc-rr\module3\exo3\Tools.jl") julia> include(raw"C:\Users\francois\Desktop\mooc-rr\module3\exo3\Tools.jl")
...@@ -185,6 +230,16 @@ julia> Tools.weave() ...@@ -185,6 +230,16 @@ julia> Tools.weave()
7.262408 seconds (65 allocations: 2.656 KiB) 7.262408 seconds (65 allocations: 2.656 KiB)
``` ```
## Quelques pointeurs vers la documentation des outils utilisés
Tous les calculs présentés dans l'étude sont réalisés en langage Julia. On
pourra se référer au [manuel du langage Julia](https://docs.julialang.org/) afin
de trouver de la documentation générale sur le langage.
Le format utilisé pour le [document computationnel](exercice.jmd) est celui de
`Weave.jl`, dont la [documentation](http://weavejl.mpastell.com/stable/) est
disponible en ligne.
<!-- Local Variables: --> <!-- Local Variables: -->
<!-- mode: markdown --> <!-- mode: markdown -->
<!-- ispell-local-dictionary: "french" --> <!-- ispell-local-dictionary: "french" -->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment