1 ******* text after include:
5 J'ai fait quelques essais dans différentes configurations pour la méthode "Neighbors"
6 (la seule dont on a parlé).<br>Il semble que le mieux soit
8 * simtype="exo" ou "mix" : similarités exogènes avec/sans endogènes (fenêtre optimisée par VC)
9 * same_season=FALSE : les indices pour la validation croisée ne tiennent pas compte des saisons
10 * mix_strategy="mult" : on multiplie les poids (au lieu d'en éteindre)
12 J'ai systématiquement comparé à une approche naïve : la moyennes des lendemains des jours
13 "similaires" dans tout le passé ; à chaque fois sans prédiction du saut (sauf pour Neighbors :
14 prédiction basée sur les poids calculés).
16 Ensuite j'affiche les erreurs, quelques courbes prévues/mesurées, quelques filaments puis les
17 histogrammes de quelques poids. Concernant les graphes de filaments, la moitié gauche du graphe
18 correspond aux jours similaires au jour courant, tandis que la moitié droite affiche les
19 lendemains : ce sont donc les voisinages tels qu'utilisés dans l'algorithme.
22 list_titles = ['Pollution par chauffage', 'Pollution par épandage', 'Semaine non polluée']
23 list_indices = ['indices_ch', 'indices_ep', 'indices_np']
28 ts_data = read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg"))
29 exo_data = read.csv(system.file("extdata","meteo_extra_noNAs.csv",package="talweg"))
30 data = getData(ts_data, exo_data, input_tz = "Europe/Paris", working_tz="Europe/Paris", predict_at=13)
32 indices_ch = seq(as.Date("2015-01-18"),as.Date("2015-01-24"),"days")
33 indices_ep = seq(as.Date("2015-03-15"),as.Date("2015-03-21"),"days")
34 indices_np = seq(as.Date("2015-04-26"),as.Date("2015-05-02"),"days")
37 <h2 style="color:blue;font-size:2em">${list_titles[i]}</h2>
39 p_nn_exo = computeForecast(data, ${list_indices[i]}, "Neighbors", "Neighbors", simtype="exo", horizon=H)
40 p_nn_mix = computeForecast(data, ${list_indices[i]}, "Neighbors", "Neighbors", simtype="mix", horizon=H)
41 p_az = computeForecast(data, ${list_indices[i]}, "Average", "Zero", horizon=H) #, memory=183)
42 p_pz = computeForecast(data, ${list_indices[i]}, "Persistence", "Zero", horizon=H, same_day=TRUE)
44 e_nn_exo = computeError(data, p_nn_exo)
45 e_nn_mix = computeError(data, p_nn_mix)
46 e_az = computeError(data, p_az)
47 e_pz = computeError(data, p_pz)
48 options(repr.plot.width=9, repr.plot.height=7)
49 plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4))
51 # Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence
53 i_np = which.min(e_nn_exo$abs$indices)
54 i_p = which.max(e_nn_exo$abs$indices)
56 options(repr.plot.width=9, repr.plot.height=4)
59 plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np))
60 plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))
62 plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np))
63 plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))
65 plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))
66 plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))
68 # Bleu: prévue, noir: réalisée
71 f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np))
72 f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p))
74 f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np))
75 f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p))
78 plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))
79 plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))
81 plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))
82 plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))
85 plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))
86 plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))
88 plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))
89 plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))
91 # Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir
94 plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))
95 plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))
97 plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))
98 plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)
100 # - pollué à gauche, + pollué à droite
102 # Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite
103 p_nn_exo$getParams(i_np)$window
104 p_nn_exo$getParams(i_p)$window
106 p_nn_mix$getParams(i_np)$window
107 p_nn_mix$getParams(i_p)$window
112 Problème difficile : on ne fait guère mieux qu'une naïve moyenne des lendemains des jours
113 similaires dans le passé, ce qui n'est pas loin de prédire une série constante égale à la
114 dernière valeur observée (méthode "zéro"). La persistence donne parfois de bons résultats
115 mais est trop instable (sensibilité à l'argument <code>same_day</code>).
117 Comment améliorer la méthode ?
118 ******* mako_kwargs: {}
119 ******* text after mako:
121 <h2>Introduction</h2>
123 J'ai fait quelques essais dans différentes configurations pour la méthode "Neighbors"
124 (la seule dont on a parlé).<br>Il semble que le mieux soit
126 * simtype="exo" ou "mix" : similarités exogènes avec/sans endogènes (fenêtre optimisée par VC)
127 * same_season=FALSE : les indices pour la validation croisée ne tiennent pas compte des saisons
128 * mix_strategy="mult" : on multiplie les poids (au lieu d'en éteindre)
130 J'ai systématiquement comparé à une approche naïve : la moyennes des lendemains des jours
131 "similaires" dans tout le passé ; à chaque fois sans prédiction du saut (sauf pour Neighbors :
132 prédiction basée sur les poids calculés).
134 Ensuite j'affiche les erreurs, quelques courbes prévues/mesurées, quelques filaments puis les
135 histogrammes de quelques poids. Concernant les graphes de filaments, la moitié gauche du graphe
136 correspond aux jours similaires au jour courant, tandis que la moitié droite affiche les
137 lendemains : ce sont donc les voisinages tels qu'utilisés dans l'algorithme.
143 ts_data = read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg"))
144 exo_data = read.csv(system.file("extdata","meteo_extra_noNAs.csv",package="talweg"))
145 data = getData(ts_data, exo_data, input_tz = "Europe/Paris", working_tz="Europe/Paris", predict_at=13)
147 indices_ch = seq(as.Date("2015-01-18"),as.Date("2015-01-24"),"days")
148 indices_ep = seq(as.Date("2015-03-15"),as.Date("2015-03-21"),"days")
149 indices_np = seq(as.Date("2015-04-26"),as.Date("2015-05-02"),"days")
151 <h2 style="color:blue;font-size:2em">Pollution par chauffage</h2>
153 p_nn_exo = computeForecast(data, indices_ch, "Neighbors", "Neighbors", simtype="exo", horizon=H)
154 p_nn_mix = computeForecast(data, indices_ch, "Neighbors", "Neighbors", simtype="mix", horizon=H)
155 p_az = computeForecast(data, indices_ch, "Average", "Zero", horizon=H) #, memory=183)
156 p_pz = computeForecast(data, indices_ch, "Persistence", "Zero", horizon=H, same_day=TRUE)
158 e_nn_exo = computeError(data, p_nn_exo)
159 e_nn_mix = computeError(data, p_nn_mix)
160 e_az = computeError(data, p_az)
161 e_pz = computeError(data, p_pz)
162 options(repr.plot.width=9, repr.plot.height=7)
163 plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4))
165 # Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence
167 i_np = which.min(e_nn_exo$abs$indices)
168 i_p = which.max(e_nn_exo$abs$indices)
170 options(repr.plot.width=9, repr.plot.height=4)
173 plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np))
174 plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))
176 plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np))
177 plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))
179 plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))
180 plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))
182 # Bleu: prévue, noir: réalisée
185 f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np))
186 f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p))
188 f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np))
189 f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p))
192 plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))
193 plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))
195 plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))
196 plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))
199 plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))
200 plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))
202 plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))
203 plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))
205 # Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir
208 plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))
209 plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))
211 plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))
212 plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)
214 # - pollué à gauche, + pollué à droite
216 # Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite
217 p_nn_exo$getParams(i_np)$window
218 p_nn_exo$getParams(i_p)$window
220 p_nn_mix$getParams(i_np)$window
221 p_nn_mix$getParams(i_p)$window
223 <h2 style="color:blue;font-size:2em">Pollution par épandage</h2>
225 p_nn_exo = computeForecast(data, indices_ep, "Neighbors", "Neighbors", simtype="exo", horizon=H)
226 p_nn_mix = computeForecast(data, indices_ep, "Neighbors", "Neighbors", simtype="mix", horizon=H)
227 p_az = computeForecast(data, indices_ep, "Average", "Zero", horizon=H) #, memory=183)
228 p_pz = computeForecast(data, indices_ep, "Persistence", "Zero", horizon=H, same_day=TRUE)
230 e_nn_exo = computeError(data, p_nn_exo)
231 e_nn_mix = computeError(data, p_nn_mix)
232 e_az = computeError(data, p_az)
233 e_pz = computeError(data, p_pz)
234 options(repr.plot.width=9, repr.plot.height=7)
235 plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4))
237 # Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence
239 i_np = which.min(e_nn_exo$abs$indices)
240 i_p = which.max(e_nn_exo$abs$indices)
242 options(repr.plot.width=9, repr.plot.height=4)
245 plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np))
246 plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))
248 plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np))
249 plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))
251 plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))
252 plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))
254 # Bleu: prévue, noir: réalisée
257 f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np))
258 f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p))
260 f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np))
261 f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p))
264 plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))
265 plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))
267 plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))
268 plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))
271 plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))
272 plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))
274 plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))
275 plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))
277 # Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir
280 plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))
281 plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))
283 plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))
284 plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)
286 # - pollué à gauche, + pollué à droite
288 # Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite
289 p_nn_exo$getParams(i_np)$window
290 p_nn_exo$getParams(i_p)$window
292 p_nn_mix$getParams(i_np)$window
293 p_nn_mix$getParams(i_p)$window
295 <h2 style="color:blue;font-size:2em">Semaine non polluée</h2>
297 p_nn_exo = computeForecast(data, indices_np, "Neighbors", "Neighbors", simtype="exo", horizon=H)
298 p_nn_mix = computeForecast(data, indices_np, "Neighbors", "Neighbors", simtype="mix", horizon=H)
299 p_az = computeForecast(data, indices_np, "Average", "Zero", horizon=H) #, memory=183)
300 p_pz = computeForecast(data, indices_np, "Persistence", "Zero", horizon=H, same_day=TRUE)
302 e_nn_exo = computeError(data, p_nn_exo)
303 e_nn_mix = computeError(data, p_nn_mix)
304 e_az = computeError(data, p_az)
305 e_pz = computeError(data, p_pz)
306 options(repr.plot.width=9, repr.plot.height=7)
307 plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4))
309 # Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence
311 i_np = which.min(e_nn_exo$abs$indices)
312 i_p = which.max(e_nn_exo$abs$indices)
314 options(repr.plot.width=9, repr.plot.height=4)
317 plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np))
318 plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))
320 plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np))
321 plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))
323 plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))
324 plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))
326 # Bleu: prévue, noir: réalisée
329 f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np))
330 f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p))
332 f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np))
333 f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p))
336 plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))
337 plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))
339 plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))
340 plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))
343 plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))
344 plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))
346 plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))
347 plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))
349 # Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir
352 plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))
353 plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))
355 plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))
356 plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)
358 # - pollué à gauche, + pollué à droite
360 # Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite
361 p_nn_exo$getParams(i_np)$window
362 p_nn_exo$getParams(i_p)$window
364 p_nn_mix$getParams(i_np)$window
365 p_nn_mix$getParams(i_p)$window
369 Problème difficile : on ne fait guère mieux qu'une naïve moyenne des lendemains des jours
370 similaires dans le passé, ce qui n'est pas loin de prédire une série constante égale à la
371 dernière valeur observée (méthode "zéro"). La persistence donne parfois de bons résultats
372 mais est trop instable (sensibilité à l'argument <code>same_day</code>).
374 Comment améliorer la méthode ?
375 ******* cell: markdown
376 ******* found shortname r
377 ******* cell: astext=False shortname=r
378 ******* cell: markdown
379 ******* found shortname r
380 ******* cell: astext=False shortname=r
381 ******* found shortname r
382 ******* cell: astext=False shortname=r
383 ******* found shortname r
384 ******* cell: astext=False shortname=r
385 ******* found shortname r
386 ******* cell: astext=False shortname=r
387 ******* found shortname r
388 ******* cell: astext=False shortname=r
389 ******* found shortname r
390 ******* cell: astext=False shortname=r
391 ******* found shortname r
392 ******* cell: astext=False shortname=r
393 ******* found shortname r
394 ******* cell: astext=False shortname=r
395 ******* cell: markdown
396 ******* found shortname r
397 ******* cell: astext=False shortname=r
398 ******* found shortname r
399 ******* cell: astext=False shortname=r
400 ******* found shortname r
401 ******* cell: astext=False shortname=r
402 ******* found shortname r
403 ******* cell: astext=False shortname=r
404 ******* found shortname r
405 ******* cell: astext=False shortname=r
406 ******* found shortname r
407 ******* cell: astext=False shortname=r
408 ******* found shortname r
409 ******* cell: astext=False shortname=r
410 ******* found shortname r
411 ******* cell: astext=False shortname=r
412 ******* cell: markdown
413 ******* found shortname r
414 ******* cell: astext=False shortname=r
415 ******* found shortname r
416 ******* cell: astext=False shortname=r
417 ******* found shortname r
418 ******* cell: astext=False shortname=r
419 ******* found shortname r
420 ******* cell: astext=False shortname=r
421 ******* found shortname r
422 ******* cell: astext=False shortname=r
423 ******* found shortname r
424 ******* cell: astext=False shortname=r
425 ******* found shortname r
426 ******* cell: astext=False shortname=r
427 ******* found shortname r
428 ******* cell: astext=False shortname=r
429 ******* cell: markdown
430 ******* cell data structure:
\b[['markdown',
434 '<h2>Introduction</h2>\n'
436 "J'ai fait quelques essais dans différentes configurations pour la méthode "
438 '(la seule dont on a parlé).<br>Il semble que le mieux soit\n'
440 ' * simtype="exo" ou "mix" : similarités exogènes avec/sans endogènes '
441 '(fenêtre optimisée par VC)\n'
442 ' * same_season=FALSE : les indices pour la validation croisée ne tiennent '
443 'pas compte des saisons\n'
444 ' * mix_strategy="mult" : on multiplie les poids (au lieu d\'en éteindre)\n'
446 "J'ai systématiquement comparé à une approche naïve : la moyennes des "
447 'lendemains des jours\n'
448 '"similaires" dans tout le passé ; à chaque fois sans prédiction du saut '
449 '(sauf pour Neighbors :\n'
450 'prédiction basée sur les poids calculés).\n'
452 "Ensuite j'affiche les erreurs, quelques courbes prévues/mesurées, quelques "
453 'filaments puis les\n'
454 'histogrammes de quelques poids. Concernant les graphes de filaments, la '
455 'moitié gauche du graphe\n'
456 'correspond aux jours similaires au jour courant, tandis que la moitié '
457 'droite affiche les\n'
458 "lendemains : ce sont donc les voisinages tels qu'utilisés dans "
466 'read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg"))\n'
468 'read.csv(system.file("extdata","meteo_extra_noNAs.csv",package="talweg"))\n'
469 'data = getData(ts_data, exo_data, input_tz = "Europe/Paris", '
470 'working_tz="Europe/Paris", predict_at=13)\n'
472 'indices_ch = seq(as.Date("2015-01-18"),as.Date("2015-01-24"),"days")\n'
473 'indices_ep = seq(as.Date("2015-03-15"),as.Date("2015-03-21"),"days")\n'
474 'indices_np = seq(as.Date("2015-04-26"),as.Date("2015-05-02"),"days")'],
477 '\n\n<h2 style="color:blue;font-size:2em">Pollution par chauffage</h2>'],
480 'p_nn_exo = computeForecast(data, indices_ch, "Neighbors", "Neighbors", '
481 'simtype="exo", horizon=H)\n'
482 'p_nn_mix = computeForecast(data, indices_ch, "Neighbors", "Neighbors", '
483 'simtype="mix", horizon=H)\n'
484 'p_az = computeForecast(data, indices_ch, "Average", "Zero", horizon=H) #, '
486 'p_pz = computeForecast(data, indices_ch, "Persistence", "Zero", horizon=H, '
490 'e_nn_exo = computeError(data, p_nn_exo)\n'
491 'e_nn_mix = computeError(data, p_nn_mix)\n'
492 'e_az = computeError(data, p_az)\n'
493 'e_pz = computeError(data, p_pz)\n'
494 'options(repr.plot.width=9, repr.plot.height=7)\n'
495 'plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], '
498 '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: '
501 'i_np = which.min(e_nn_exo$abs$indices)\n'
502 'i_p = which.max(e_nn_exo$abs$indices)'],
505 'options(repr.plot.width=9, repr.plot.height=4)\n'
506 'par(mfrow=c(1,2))\n'
508 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo '
510 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n'
512 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix '
514 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n'
516 'plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))\n'
517 'plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))\n'
519 '# Bleu: prévue, noir: réalisée'],
522 'par(mfrow=c(1,2))\n'
523 'f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); '
524 'title(paste("Filaments nn exo day",i_np))\n'
525 'f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); '
526 'title(paste("Filaments nn exo day",i_p))\n'
528 'f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); '
529 'title(paste("Filaments nn mix day",i_np))\n'
530 'f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); '
531 'title(paste("Filaments nn mix day",i_p))'],
534 'par(mfrow=c(1,2))\n'
535 'plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))\n'
536 'plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))\n'
538 'plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))\n'
539 'plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))'],
542 'par(mfrow=c(1,2))\n'
543 'plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))\n'
544 'plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))\n'
546 'plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))\n'
547 'plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))\n'
549 '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'],
552 'par(mfrow=c(1,2))\n'
553 'plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))\n'
554 'plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))\n'
556 'plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))\n'
557 'plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)\n'
559 '# - pollué à gauche, + pollué à droite'],
562 '# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite\n'
563 'p_nn_exo$getParams(i_np)$window\n'
564 'p_nn_exo$getParams(i_p)$window\n'
566 'p_nn_mix$getParams(i_np)$window\n'
567 'p_nn_mix$getParams(i_p)$window'],
570 '\n\n<h2 style="color:blue;font-size:2em">Pollution par épandage</h2>'],
573 'p_nn_exo = computeForecast(data, indices_ep, "Neighbors", "Neighbors", '
574 'simtype="exo", horizon=H)\n'
575 'p_nn_mix = computeForecast(data, indices_ep, "Neighbors", "Neighbors", '
576 'simtype="mix", horizon=H)\n'
577 'p_az = computeForecast(data, indices_ep, "Average", "Zero", horizon=H) #, '
579 'p_pz = computeForecast(data, indices_ep, "Persistence", "Zero", horizon=H, '
583 'e_nn_exo = computeError(data, p_nn_exo)\n'
584 'e_nn_mix = computeError(data, p_nn_mix)\n'
585 'e_az = computeError(data, p_az)\n'
586 'e_pz = computeError(data, p_pz)\n'
587 'options(repr.plot.width=9, repr.plot.height=7)\n'
588 'plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], '
591 '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: '
594 'i_np = which.min(e_nn_exo$abs$indices)\n'
595 'i_p = which.max(e_nn_exo$abs$indices)'],
598 'options(repr.plot.width=9, repr.plot.height=4)\n'
599 'par(mfrow=c(1,2))\n'
601 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo '
603 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n'
605 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix '
607 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n'
609 'plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))\n'
610 'plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))\n'
612 '# Bleu: prévue, noir: réalisée'],
615 'par(mfrow=c(1,2))\n'
616 'f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); '
617 'title(paste("Filaments nn exo day",i_np))\n'
618 'f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); '
619 'title(paste("Filaments nn exo day",i_p))\n'
621 'f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); '
622 'title(paste("Filaments nn mix day",i_np))\n'
623 'f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); '
624 'title(paste("Filaments nn mix day",i_p))'],
627 'par(mfrow=c(1,2))\n'
628 'plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))\n'
629 'plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))\n'
631 'plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))\n'
632 'plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))'],
635 'par(mfrow=c(1,2))\n'
636 'plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))\n'
637 'plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))\n'
639 'plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))\n'
640 'plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))\n'
642 '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'],
645 'par(mfrow=c(1,2))\n'
646 'plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))\n'
647 'plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))\n'
649 'plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))\n'
650 'plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)\n'
652 '# - pollué à gauche, + pollué à droite'],
655 '# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite\n'
656 'p_nn_exo$getParams(i_np)$window\n'
657 'p_nn_exo$getParams(i_p)$window\n'
659 'p_nn_mix$getParams(i_np)$window\n'
660 'p_nn_mix$getParams(i_p)$window'],
663 '\n\n<h2 style="color:blue;font-size:2em">Semaine non polluée</h2>'],
666 'p_nn_exo = computeForecast(data, indices_np, "Neighbors", "Neighbors", '
667 'simtype="exo", horizon=H)\n'
668 'p_nn_mix = computeForecast(data, indices_np, "Neighbors", "Neighbors", '
669 'simtype="mix", horizon=H)\n'
670 'p_az = computeForecast(data, indices_np, "Average", "Zero", horizon=H) #, '
672 'p_pz = computeForecast(data, indices_np, "Persistence", "Zero", horizon=H, '
676 'e_nn_exo = computeError(data, p_nn_exo)\n'
677 'e_nn_mix = computeError(data, p_nn_mix)\n'
678 'e_az = computeError(data, p_az)\n'
679 'e_pz = computeError(data, p_pz)\n'
680 'options(repr.plot.width=9, repr.plot.height=7)\n'
681 'plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], '
684 '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: '
687 'i_np = which.min(e_nn_exo$abs$indices)\n'
688 'i_p = which.max(e_nn_exo$abs$indices)'],
691 'options(repr.plot.width=9, repr.plot.height=4)\n'
692 'par(mfrow=c(1,2))\n'
694 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo '
696 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n'
698 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix '
700 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n'
702 'plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))\n'
703 'plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))\n'
705 '# Bleu: prévue, noir: réalisée'],
708 'par(mfrow=c(1,2))\n'
709 'f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); '
710 'title(paste("Filaments nn exo day",i_np))\n'
711 'f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); '
712 'title(paste("Filaments nn exo day",i_p))\n'
714 'f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); '
715 'title(paste("Filaments nn mix day",i_np))\n'
716 'f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); '
717 'title(paste("Filaments nn mix day",i_p))'],
720 'par(mfrow=c(1,2))\n'
721 'plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))\n'
722 'plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))\n'
724 'plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))\n'
725 'plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))'],
728 'par(mfrow=c(1,2))\n'
729 'plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))\n'
730 'plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))\n'
732 'plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))\n'
733 'plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))\n'
735 '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'],
738 'par(mfrow=c(1,2))\n'
739 'plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))\n'
740 'plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))\n'
742 'plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))\n'
743 'plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)\n'
745 '# - pollué à gauche, + pollué à droite'],
748 '# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite\n'
749 'p_nn_exo$getParams(i_np)$window\n'
750 'p_nn_exo$getParams(i_p)$window\n'
752 'p_nn_mix$getParams(i_np)$window\n'
753 'p_nn_mix$getParams(i_p)$window'],
760 "Problème difficile : on ne fait guère mieux qu'une naïve moyenne des "
761 'lendemains des jours\n'
762 "similaires dans le passé, ce qui n'est pas loin de prédire une série "
763 'constante égale à la\n'
764 'dernière valeur observée (méthode "zéro"). La persistence donne parfois de '
766 "mais est trop instable (sensibilité à l'argument <code>same_day</code>).\n"
768 'Comment améliorer la méthode ?']]