name instead of year; ipynb generator debugged, with logging
[talweg.git] / reports / tmp.log
CommitLineData
ff5df8e3
BA
1******* text after include:
2-----
3<h2>Introduction</h2>
4
5J'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
7
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)
11
12J'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 :
14prédiction basée sur les poids calculés).
15
16Ensuite j'affiche les erreurs, quelques courbes prévues/mesurées, quelques filaments puis les
17histogrammes de quelques poids. Concernant les graphes de filaments, la moitié gauche du graphe
18correspond aux jours similaires au jour courant, tandis que la moitié droite affiche les
19lendemains : ce sont donc les voisinages tels qu'utilisés dans l'algorithme.
20
21<%
22list_titles = ['Pollution par chauffage', 'Pollution par épandage', 'Semaine non polluée']
23list_indices = ['indices_ch', 'indices_ep', 'indices_np']
24%>
25-----r
26library(talweg)
27
28ts_data = read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg"))
29exo_data = read.csv(system.file("extdata","meteo_extra_noNAs.csv",package="talweg"))
30data = getData(ts_data, exo_data, input_tz = "Europe/Paris", working_tz="Europe/Paris", predict_at=13)
31
32indices_ch = seq(as.Date("2015-01-18"),as.Date("2015-01-24"),"days")
33indices_ep = seq(as.Date("2015-03-15"),as.Date("2015-03-21"),"days")
34indices_np = seq(as.Date("2015-04-26"),as.Date("2015-05-02"),"days")
35% for i in range(3):
36-----
37<h2 style="color:blue;font-size:2em">${list_titles[i]}</h2>
38-----r
39p_nn_exo = computeForecast(data, ${list_indices[i]}, "Neighbors", "Neighbors", simtype="exo", horizon=H)
40p_nn_mix = computeForecast(data, ${list_indices[i]}, "Neighbors", "Neighbors", simtype="mix", horizon=H)
41p_az = computeForecast(data, ${list_indices[i]}, "Average", "Zero", horizon=H) #, memory=183)
42p_pz = computeForecast(data, ${list_indices[i]}, "Persistence", "Zero", horizon=H, same_day=TRUE)
43-----r
44e_nn_exo = computeError(data, p_nn_exo)
45e_nn_mix = computeError(data, p_nn_mix)
46e_az = computeError(data, p_az)
47e_pz = computeError(data, p_pz)
48options(repr.plot.width=9, repr.plot.height=7)
49plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4))
50
51# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence
52
53i_np = which.min(e_nn_exo$abs$indices)
54i_p = which.max(e_nn_exo$abs$indices)
55-----r
56options(repr.plot.width=9, repr.plot.height=4)
57par(mfrow=c(1,2))
58
59plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np))
60plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))
61
62plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np))
63plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))
64
65plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))
66plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))
67
68# Bleu: prévue, noir: réalisée
69-----r
70par(mfrow=c(1,2))
71f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np))
72f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p))
73
74f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np))
75f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p))
76-----r
77par(mfrow=c(1,2))
78plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))
79plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))
80
81plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))
82plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))
83-----r
84par(mfrow=c(1,2))
85plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))
86plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))
87
88plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))
89plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))
90
91# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir
92-----r
93par(mfrow=c(1,2))
94plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))
95plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))
96
97plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))
98plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)
99
100# - pollué à gauche, + pollué à droite
101-----r
102# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite
103p_nn_exo$getParams(i_np)$window
104p_nn_exo$getParams(i_p)$window
105
106p_nn_mix$getParams(i_np)$window
107p_nn_mix$getParams(i_p)$window
108% endfor
109-----
110<h2>Bilan</h2>
111
112Problème difficile : on ne fait guère mieux qu'une naïve moyenne des lendemains des jours
113similaires dans le passé, ce qui n'est pas loin de prédire une série constante égale à la
114dernière valeur observée (méthode "zéro"). La persistence donne parfois de bons résultats
115mais est trop instable (sensibilité à l'argument <code>same_day</code>).
116
117Comment améliorer la méthode ?
118******* mako_kwargs: {}
119******* text after mako:
120-----
121<h2>Introduction</h2>
122
123J'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
125
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)
129
130J'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 :
132prédiction basée sur les poids calculés).
133
134Ensuite j'affiche les erreurs, quelques courbes prévues/mesurées, quelques filaments puis les
135histogrammes de quelques poids. Concernant les graphes de filaments, la moitié gauche du graphe
136correspond aux jours similaires au jour courant, tandis que la moitié droite affiche les
137lendemains : ce sont donc les voisinages tels qu'utilisés dans l'algorithme.
138
139
140-----r
141library(talweg)
142
143ts_data = read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg"))
144exo_data = read.csv(system.file("extdata","meteo_extra_noNAs.csv",package="talweg"))
145data = getData(ts_data, exo_data, input_tz = "Europe/Paris", working_tz="Europe/Paris", predict_at=13)
146
147indices_ch = seq(as.Date("2015-01-18"),as.Date("2015-01-24"),"days")
148indices_ep = seq(as.Date("2015-03-15"),as.Date("2015-03-21"),"days")
149indices_np = seq(as.Date("2015-04-26"),as.Date("2015-05-02"),"days")
150-----
151<h2 style="color:blue;font-size:2em">Pollution par chauffage</h2>
152-----r
153p_nn_exo = computeForecast(data, indices_ch, "Neighbors", "Neighbors", simtype="exo", horizon=H)
154p_nn_mix = computeForecast(data, indices_ch, "Neighbors", "Neighbors", simtype="mix", horizon=H)
155p_az = computeForecast(data, indices_ch, "Average", "Zero", horizon=H) #, memory=183)
156p_pz = computeForecast(data, indices_ch, "Persistence", "Zero", horizon=H, same_day=TRUE)
157-----r
158e_nn_exo = computeError(data, p_nn_exo)
159e_nn_mix = computeError(data, p_nn_mix)
160e_az = computeError(data, p_az)
161e_pz = computeError(data, p_pz)
162options(repr.plot.width=9, repr.plot.height=7)
163plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4))
164
165# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence
166
167i_np = which.min(e_nn_exo$abs$indices)
168i_p = which.max(e_nn_exo$abs$indices)
169-----r
170options(repr.plot.width=9, repr.plot.height=4)
171par(mfrow=c(1,2))
172
173plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np))
174plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))
175
176plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np))
177plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))
178
179plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))
180plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))
181
182# Bleu: prévue, noir: réalisée
183-----r
184par(mfrow=c(1,2))
185f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np))
186f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p))
187
188f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np))
189f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p))
190-----r
191par(mfrow=c(1,2))
192plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))
193plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))
194
195plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))
196plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))
197-----r
198par(mfrow=c(1,2))
199plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))
200plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))
201
202plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))
203plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))
204
205# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir
206-----r
207par(mfrow=c(1,2))
208plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))
209plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))
210
211plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))
212plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)
213
214# - pollué à gauche, + pollué à droite
215-----r
216# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite
217p_nn_exo$getParams(i_np)$window
218p_nn_exo$getParams(i_p)$window
219
220p_nn_mix$getParams(i_np)$window
221p_nn_mix$getParams(i_p)$window
222-----
223<h2 style="color:blue;font-size:2em">Pollution par épandage</h2>
224-----r
225p_nn_exo = computeForecast(data, indices_ep, "Neighbors", "Neighbors", simtype="exo", horizon=H)
226p_nn_mix = computeForecast(data, indices_ep, "Neighbors", "Neighbors", simtype="mix", horizon=H)
227p_az = computeForecast(data, indices_ep, "Average", "Zero", horizon=H) #, memory=183)
228p_pz = computeForecast(data, indices_ep, "Persistence", "Zero", horizon=H, same_day=TRUE)
229-----r
230e_nn_exo = computeError(data, p_nn_exo)
231e_nn_mix = computeError(data, p_nn_mix)
232e_az = computeError(data, p_az)
233e_pz = computeError(data, p_pz)
234options(repr.plot.width=9, repr.plot.height=7)
235plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4))
236
237# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence
238
239i_np = which.min(e_nn_exo$abs$indices)
240i_p = which.max(e_nn_exo$abs$indices)
241-----r
242options(repr.plot.width=9, repr.plot.height=4)
243par(mfrow=c(1,2))
244
245plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np))
246plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))
247
248plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np))
249plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))
250
251plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))
252plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))
253
254# Bleu: prévue, noir: réalisée
255-----r
256par(mfrow=c(1,2))
257f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np))
258f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p))
259
260f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np))
261f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p))
262-----r
263par(mfrow=c(1,2))
264plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))
265plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))
266
267plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))
268plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))
269-----r
270par(mfrow=c(1,2))
271plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))
272plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))
273
274plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))
275plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))
276
277# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir
278-----r
279par(mfrow=c(1,2))
280plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))
281plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))
282
283plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))
284plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)
285
286# - pollué à gauche, + pollué à droite
287-----r
288# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite
289p_nn_exo$getParams(i_np)$window
290p_nn_exo$getParams(i_p)$window
291
292p_nn_mix$getParams(i_np)$window
293p_nn_mix$getParams(i_p)$window
294-----
295<h2 style="color:blue;font-size:2em">Semaine non polluée</h2>
296-----r
297p_nn_exo = computeForecast(data, indices_np, "Neighbors", "Neighbors", simtype="exo", horizon=H)
298p_nn_mix = computeForecast(data, indices_np, "Neighbors", "Neighbors", simtype="mix", horizon=H)
299p_az = computeForecast(data, indices_np, "Average", "Zero", horizon=H) #, memory=183)
300p_pz = computeForecast(data, indices_np, "Persistence", "Zero", horizon=H, same_day=TRUE)
301-----r
302e_nn_exo = computeError(data, p_nn_exo)
303e_nn_mix = computeError(data, p_nn_mix)
304e_az = computeError(data, p_az)
305e_pz = computeError(data, p_pz)
306options(repr.plot.width=9, repr.plot.height=7)
307plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4))
308
309# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence
310
311i_np = which.min(e_nn_exo$abs$indices)
312i_p = which.max(e_nn_exo$abs$indices)
313-----r
314options(repr.plot.width=9, repr.plot.height=4)
315par(mfrow=c(1,2))
316
317plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np))
318plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))
319
320plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np))
321plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))
322
323plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))
324plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))
325
326# Bleu: prévue, noir: réalisée
327-----r
328par(mfrow=c(1,2))
329f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np))
330f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p))
331
332f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np))
333f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p))
334-----r
335par(mfrow=c(1,2))
336plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))
337plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))
338
339plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))
340plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))
341-----r
342par(mfrow=c(1,2))
343plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))
344plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))
345
346plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))
347plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))
348
349# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir
350-----r
351par(mfrow=c(1,2))
352plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))
353plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))
354
355plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))
356plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)
357
358# - pollué à gauche, + pollué à droite
359-----r
360# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite
361p_nn_exo$getParams(i_np)$window
362p_nn_exo$getParams(i_p)$window
363
364p_nn_mix$getParams(i_np)$window
365p_nn_mix$getParams(i_p)$window
366-----
367<h2>Bilan</h2>
368
369Problème difficile : on ne fait guère mieux qu'une naïve moyenne des lendemains des jours
370similaires dans le passé, ce qui n'est pas loin de prédire une série constante égale à la
371dernière valeur observée (méthode "zéro"). La persistence donne parfois de bons résultats
372mais est trop instable (sensibilité à l'argument <code>same_day</code>).
373
374Comment 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',
431 'text',
432 '\n'
433 '\n'
434 '<h2>Introduction</h2>\n'
435 '\n'
436 "J'ai fait quelques essais dans différentes configurations pour la méthode "
437 '"Neighbors"\n'
438 '(la seule dont on a parlé).<br>Il semble que le mieux soit\n'
439 '\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'
445 '\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'
451 '\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 "
459 "l'algorithme.\n"
460 '\n'],
461 ['codecell',
462 'R',
463 'library(talweg)\n'
464 '\n'
465 'ts_data = '
466 'read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg"))\n'
467 'exo_data = '
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'
471 '\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")'],
475 ['markdown',
476 'text',
477 '\n\n<h2 style="color:blue;font-size:2em">Pollution par chauffage</h2>'],
478 ['codecell',
479 'R',
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) #, '
485 'memory=183)\n'
486 'p_pz = computeForecast(data, indices_ch, "Persistence", "Zero", horizon=H, '
487 'same_day=TRUE)'],
488 ['codecell',
489 'R',
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], '
496 '4))\n'
497 '\n'
498 '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: '
499 'persistence\n'
500 '\n'
501 'i_np = which.min(e_nn_exo$abs$indices)\n'
502 'i_p = which.max(e_nn_exo$abs$indices)'],
503 ['codecell',
504 'R',
505 'options(repr.plot.width=9, repr.plot.height=4)\n'
506 'par(mfrow=c(1,2))\n'
507 '\n'
508 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo '
509 'day",i_np))\n'
510 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n'
511 '\n'
512 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix '
513 'day",i_np))\n'
514 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n'
515 '\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'
518 '\n'
519 '# Bleu: prévue, noir: réalisée'],
520 ['codecell',
521 'R',
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'
527 '\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))'],
532 ['codecell',
533 'R',
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'
537 '\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))'],
540 ['codecell',
541 'R',
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'
545 '\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'
548 '\n'
549 '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'],
550 ['codecell',
551 'R',
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'
555 '\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'
558 '\n'
559 '# - pollué à gauche, + pollué à droite'],
560 ['codecell',
561 'R',
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'
565 '\n'
566 'p_nn_mix$getParams(i_np)$window\n'
567 'p_nn_mix$getParams(i_p)$window'],
568 ['markdown',
569 'text',
570 '\n\n<h2 style="color:blue;font-size:2em">Pollution par épandage</h2>'],
571 ['codecell',
572 'R',
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) #, '
578 'memory=183)\n'
579 'p_pz = computeForecast(data, indices_ep, "Persistence", "Zero", horizon=H, '
580 'same_day=TRUE)'],
581 ['codecell',
582 'R',
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], '
589 '4))\n'
590 '\n'
591 '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: '
592 'persistence\n'
593 '\n'
594 'i_np = which.min(e_nn_exo$abs$indices)\n'
595 'i_p = which.max(e_nn_exo$abs$indices)'],
596 ['codecell',
597 'R',
598 'options(repr.plot.width=9, repr.plot.height=4)\n'
599 'par(mfrow=c(1,2))\n'
600 '\n'
601 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo '
602 'day",i_np))\n'
603 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n'
604 '\n'
605 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix '
606 'day",i_np))\n'
607 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n'
608 '\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'
611 '\n'
612 '# Bleu: prévue, noir: réalisée'],
613 ['codecell',
614 'R',
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'
620 '\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))'],
625 ['codecell',
626 'R',
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'
630 '\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))'],
633 ['codecell',
634 'R',
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'
638 '\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'
641 '\n'
642 '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'],
643 ['codecell',
644 'R',
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'
648 '\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'
651 '\n'
652 '# - pollué à gauche, + pollué à droite'],
653 ['codecell',
654 'R',
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'
658 '\n'
659 'p_nn_mix$getParams(i_np)$window\n'
660 'p_nn_mix$getParams(i_p)$window'],
661 ['markdown',
662 'text',
663 '\n\n<h2 style="color:blue;font-size:2em">Semaine non polluée</h2>'],
664 ['codecell',
665 'R',
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) #, '
671 'memory=183)\n'
672 'p_pz = computeForecast(data, indices_np, "Persistence", "Zero", horizon=H, '
673 'same_day=TRUE)'],
674 ['codecell',
675 'R',
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], '
682 '4))\n'
683 '\n'
684 '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: '
685 'persistence\n'
686 '\n'
687 'i_np = which.min(e_nn_exo$abs$indices)\n'
688 'i_p = which.max(e_nn_exo$abs$indices)'],
689 ['codecell',
690 'R',
691 'options(repr.plot.width=9, repr.plot.height=4)\n'
692 'par(mfrow=c(1,2))\n'
693 '\n'
694 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo '
695 'day",i_np))\n'
696 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n'
697 '\n'
698 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix '
699 'day",i_np))\n'
700 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n'
701 '\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'
704 '\n'
705 '# Bleu: prévue, noir: réalisée'],
706 ['codecell',
707 'R',
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'
713 '\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))'],
718 ['codecell',
719 'R',
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'
723 '\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))'],
726 ['codecell',
727 'R',
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'
731 '\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'
734 '\n'
735 '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'],
736 ['codecell',
737 'R',
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'
741 '\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'
744 '\n'
745 '# - pollué à gauche, + pollué à droite'],
746 ['codecell',
747 'R',
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'
751 '\n'
752 'p_nn_mix$getParams(i_np)$window\n'
753 'p_nn_mix$getParams(i_p)$window'],
754 ['markdown',
755 'text',
756 '\n'
757 '\n'
758 '<h2>Bilan</h2>\n'
759 '\n'
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 '
765 'bons résultats\n'
766 "mais est trop instable (sensibilité à l'argument <code>same_day</code>).\n"
767 '\n'
768 'Comment améliorer la méthode ?']]