2 % Default to the notebook output style
7 % Inherit from the specified cell style.
13 \documentclass[11pt
]{article
}
17 \usepackage[T1]{fontenc}
18 % Nicer default font (+ math font) than Computer Modern for most use cases
21 % Basic figure setup, for now with no caption control since it's done
22 % automatically by Pandoc (which extracts ![](path) syntax from Markdown).
24 % We will generate all images so they have a width \maxwidth. This means
25 % that they will get their normal width if they fit onto the page, but
26 % are scaled down if they would overflow the margins.
28 \def\maxwidth{\ifdim\Gin@nat@width>
\linewidth\linewidth
29 \else\Gin@nat@width
\fi}
31 \let\Oldincludegraphics\includegraphics
32 % Set max figure width to be 80% of text width, for now hardcoded.
33 \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=
.8\maxwidth]{#1}}
34 % Ensure that by default, figures have no caption (until we provide a
35 % proper Figure object with a Caption API and a way to capture that
36 % in the conversion process - todo).
38 \DeclareCaptionLabelFormat{nolabel
}{}
39 \captionsetup{labelformat=nolabel
}
41 \usepackage{adjustbox
} % Used to constrain images to a maximum size
42 \usepackage{xcolor
} % Allow colors to be defined
43 \usepackage{enumerate
} % Needed for markdown enumerations to work
44 \usepackage{geometry
} % Used to adjust the document margins
45 \usepackage{amsmath
} % Equations
46 \usepackage{amssymb
} % Equations
47 \usepackage{textcomp
} % defines textquotesingle
48 % Hack from http://tex.stackexchange.com/a/47451/13684:
50 \def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code
52 \usepackage{upquote
} % Upright quotes for verbatim code
53 \usepackage{eurosym
} % defines \euro
54 \usepackage[mathletters
]{ucs
} % Extended unicode (utf-8) support
55 \usepackage[utf8x
]{inputenc} % Allow utf-8 characters in the tex document
56 \usepackage{fancyvrb
} % verbatim replacement that allows latex
57 \usepackage{grffile
} % extends the file name processing of package graphics
58 % to support a larger range
59 % The hyperref package gives us a pdf with properly built
60 % internal navigation ('pdf bookmarks' for the table of contents,
61 % internal cross-reference links, web links for URLs, etc.)
63 \usepackage{longtable
} % longtable support required by pandoc >1.10
64 \usepackage{booktabs
} % table support for pandoc > 1.12.2
65 \usepackage[inline
]{enumitem
} % IRkernel/repr support (it uses the enumerate* environment)
66 \usepackage[normalem
]{ulem
} % ulem is needed to support strikethroughs (\sout)
67 % normalem makes italics be italics, not underlines
72 % Colors for the hyperref package
73 \definecolor{urlcolor
}{rgb
}{0,
.145,
.698}
74 \definecolor{linkcolor
}{rgb
}{.71,
0.21,
0.01}
75 \definecolor{citecolor
}{rgb
}{.12,
.54,
.11}
78 \definecolor{ansi-black
}{HTML
}{3E424D
}
79 \definecolor{ansi-black-intense
}{HTML
}{282C36
}
80 \definecolor{ansi-red
}{HTML
}{E75C58
}
81 \definecolor{ansi-red-intense
}{HTML
}{B22B31
}
82 \definecolor{ansi-green
}{HTML
}{00A250
}
83 \definecolor{ansi-green-intense
}{HTML
}{007427}
84 \definecolor{ansi-yellow
}{HTML
}{DDB62B
}
85 \definecolor{ansi-yellow-intense
}{HTML
}{B27D12
}
86 \definecolor{ansi-blue
}{HTML
}{208FFB
}
87 \definecolor{ansi-blue-intense
}{HTML
}{0065CA
}
88 \definecolor{ansi-magenta
}{HTML
}{D160C4
}
89 \definecolor{ansi-magenta-intense
}{HTML
}{A03196
}
90 \definecolor{ansi-cyan
}{HTML
}{60C6C8
}
91 \definecolor{ansi-cyan-intense
}{HTML
}{258F8F
}
92 \definecolor{ansi-white
}{HTML
}{C5C1B4
}
93 \definecolor{ansi-white-intense
}{HTML
}{A1A6B2
}
95 % commands and environments needed by pandoc snippets
96 % extracted from the output of `pandoc -s`
97 \providecommand{\tightlist}{%
98 \setlength{\itemsep}{0pt
}\setlength{\parskip}{0pt
}}
99 \DefineVerbatimEnvironment{Highlighting
}{Verbatim
}{commandchars=\\\
{\
}}
100 % Add ',fontsize=\small' for more characters per line
101 \newenvironment{Shaded
}{}{}
102 \newcommand{\KeywordTok}[1]{\textcolor[rgb
]{0.00,
0.44,
0.13}{\textbf{{#1}}}}
103 \newcommand{\DataTypeTok}[1]{\textcolor[rgb
]{0.56,
0.13,
0.00}{{#1}}}
104 \newcommand{\DecValTok}[1]{\textcolor[rgb
]{0.25,
0.63,
0.44}{{#1}}}
105 \newcommand{\BaseNTok}[1]{\textcolor[rgb
]{0.25,
0.63,
0.44}{{#1}}}
106 \newcommand{\FloatTok}[1]{\textcolor[rgb
]{0.25,
0.63,
0.44}{{#1}}}
107 \newcommand{\CharTok}[1]{\textcolor[rgb
]{0.25,
0.44,
0.63}{{#1}}}
108 \newcommand{\StringTok}[1]{\textcolor[rgb
]{0.25,
0.44,
0.63}{{#1}}}
109 \newcommand{\CommentTok}[1]{\textcolor[rgb
]{0.38,
0.63,
0.69}{\textit{{#1}}}}
110 \newcommand{\OtherTok}[1]{\textcolor[rgb
]{0.00,
0.44,
0.13}{{#1}}}
111 \newcommand{\AlertTok}[1]{\textcolor[rgb
]{1.00,
0.00,
0.00}{\textbf{{#1}}}}
112 \newcommand{\FunctionTok}[1]{\textcolor[rgb
]{0.02,
0.16,
0.49}{{#1}}}
113 \newcommand{\RegionMarkerTok}[1]{{#1}}
114 \newcommand{\ErrorTok}[1]{\textcolor[rgb
]{1.00,
0.00,
0.00}{\textbf{{#1}}}}
115 \newcommand{\NormalTok}[1]{{#1}}
117 % Additional commands for more recent versions of Pandoc
118 \newcommand{\ConstantTok}[1]{\textcolor[rgb
]{0.53,
0.00,
0.00}{{#1}}}
119 \newcommand{\SpecialCharTok}[1]{\textcolor[rgb
]{0.25,
0.44,
0.63}{{#1}}}
120 \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb
]{0.25,
0.44,
0.63}{{#1}}}
121 \newcommand{\SpecialStringTok}[1]{\textcolor[rgb
]{0.73,
0.40,
0.53}{{#1}}}
122 \newcommand{\ImportTok}[1]{{#1}}
123 \newcommand{\DocumentationTok}[1]{\textcolor[rgb
]{0.73,
0.13,
0.13}{\textit{{#1}}}}
124 \newcommand{\AnnotationTok}[1]{\textcolor[rgb
]{0.38,
0.63,
0.69}{\textbf{\textit{{#1}}}}}
125 \newcommand{\CommentVarTok}[1]{\textcolor[rgb
]{0.38,
0.63,
0.69}{\textbf{\textit{{#1}}}}}
126 \newcommand{\VariableTok}[1]{\textcolor[rgb
]{0.10,
0.09,
0.49}{{#1}}}
127 \newcommand{\ControlFlowTok}[1]{\textcolor[rgb
]{0.00,
0.44,
0.13}{\textbf{{#1}}}}
128 \newcommand{\OperatorTok}[1]{\textcolor[rgb
]{0.40,
0.40,
0.40}{{#1}}}
129 \newcommand{\BuiltInTok}[1]{{#1}}
130 \newcommand{\ExtensionTok}[1]{{#1}}
131 \newcommand{\PreprocessorTok}[1]{\textcolor[rgb
]{0.74,
0.48,
0.00}{{#1}}}
132 \newcommand{\AttributeTok}[1]{\textcolor[rgb
]{0.49,
0.56,
0.16}{{#1}}}
133 \newcommand{\InformationTok}[1]{\textcolor[rgb
]{0.38,
0.63,
0.69}{\textbf{\textit{{#1}}}}}
134 \newcommand{\WarningTok}[1]{\textcolor[rgb
]{0.38,
0.63,
0.69}{\textbf{\textit{{#1}}}}}
137 % Define a nice break command that doesn't care if a line doesn't already
139 \def\br{\hspace*
{\fill} \\*
}
140 % Math Jax compatability definitions
143 % Document parameters
144 \title{report\_P7\_H17}
149 % Pygments definitions
152 \def\PY@reset
{\let\PY@it=
\relax \let\PY@bf=
\relax%
153 \let\PY@ul=
\relax \let\PY@tc=
\relax%
154 \let\PY@bc=
\relax \let\PY@ff=
\relax}
155 \def\PY@tok
#1{\csname PY@tok@
#1\endcsname}
156 \def\PY@toks
#1+
{\ifx\relax#1\empty\else%
157 \PY@tok
{#1}\expandafter\PY@toks
\fi}
158 \def\PY@do
#1{\PY@bc
{\PY@tc
{\PY@ul
{%
159 \PY@it
{\PY@bf
{\PY@ff
{#1}}}}}}}
160 \def\PY#1#2{\PY@reset
\PY@toks
#1+
\relax+
\PY@do
{#2}}
162 \expandafter\def\csname PY@tok@w
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.73,
0.73}{#
#1}}}
163 \expandafter\def\csname PY@tok@c
\endcsname{\let\PY@it=
\textit\def\PY@tc#
#1{\textcolor[rgb
]{0.25,
0.50,
0.50}{#
#1}}}
164 \expandafter\def\csname PY@tok@cp
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.74,
0.48,
0.00}{#
#1}}}
165 \expandafter\def\csname PY@tok@k
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
166 \expandafter\def\csname PY@tok@kp
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
167 \expandafter\def\csname PY@tok@kt
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.69,
0.00,
0.25}{#
#1}}}
168 \expandafter\def\csname PY@tok@o
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.40,
0.40,
0.40}{#
#1}}}
169 \expandafter\def\csname PY@tok@ow
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.67,
0.13,
1.00}{#
#1}}}
170 \expandafter\def\csname PY@tok@nb
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
171 \expandafter\def\csname PY@tok@nf
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.00,
1.00}{#
#1}}}
172 \expandafter\def\csname PY@tok@nc
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.00,
1.00}{#
#1}}}
173 \expandafter\def\csname PY@tok@nn
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.00,
1.00}{#
#1}}}
174 \expandafter\def\csname PY@tok@ne
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.82,
0.25,
0.23}{#
#1}}}
175 \expandafter\def\csname PY@tok@nv
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.10,
0.09,
0.49}{#
#1}}}
176 \expandafter\def\csname PY@tok@no
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.53,
0.00,
0.00}{#
#1}}}
177 \expandafter\def\csname PY@tok@nl
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.63,
0.63,
0.00}{#
#1}}}
178 \expandafter\def\csname PY@tok@ni
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.60,
0.60,
0.60}{#
#1}}}
179 \expandafter\def\csname PY@tok@na
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.49,
0.56,
0.16}{#
#1}}}
180 \expandafter\def\csname PY@tok@nt
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
181 \expandafter\def\csname PY@tok@nd
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.67,
0.13,
1.00}{#
#1}}}
182 \expandafter\def\csname PY@tok@s
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
183 \expandafter\def\csname PY@tok@sd
\endcsname{\let\PY@it=
\textit\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
184 \expandafter\def\csname PY@tok@si
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.40,
0.53}{#
#1}}}
185 \expandafter\def\csname PY@tok@se
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.40,
0.13}{#
#1}}}
186 \expandafter\def\csname PY@tok@sr
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.40,
0.53}{#
#1}}}
187 \expandafter\def\csname PY@tok@ss
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.10,
0.09,
0.49}{#
#1}}}
188 \expandafter\def\csname PY@tok@sx
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
189 \expandafter\def\csname PY@tok@m
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.40,
0.40,
0.40}{#
#1}}}
190 \expandafter\def\csname PY@tok@gh
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.00,
0.50}{#
#1}}}
191 \expandafter\def\csname PY@tok@gu
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.50,
0.00,
0.50}{#
#1}}}
192 \expandafter\def\csname PY@tok@gd
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.63,
0.00,
0.00}{#
#1}}}
193 \expandafter\def\csname PY@tok@gi
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.63,
0.00}{#
#1}}}
194 \expandafter\def\csname PY@tok@gr
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{1.00,
0.00,
0.00}{#
#1}}}
195 \expandafter\def\csname PY@tok@ge
\endcsname{\let\PY@it=
\textit}
196 \expandafter\def\csname PY@tok@gs
\endcsname{\let\PY@bf=
\textbf}
197 \expandafter\def\csname PY@tok@gp
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.00,
0.50}{#
#1}}}
198 \expandafter\def\csname PY@tok@go
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.53,
0.53,
0.53}{#
#1}}}
199 \expandafter\def\csname PY@tok@gt
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.27,
0.87}{#
#1}}}
200 \expandafter\def\csname PY@tok@err
\endcsname{\def\PY@bc#
#1{\setlength{\fboxsep}{0pt
}\fcolorbox[rgb
]{1.00,
0.00,
0.00}{1,
1,
1}{\strut #
#1}}}
201 \expandafter\def\csname PY@tok@kc
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
202 \expandafter\def\csname PY@tok@kd
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
203 \expandafter\def\csname PY@tok@kn
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
204 \expandafter\def\csname PY@tok@kr
\endcsname{\let\PY@bf=
\textbf\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
205 \expandafter\def\csname PY@tok@bp
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.50,
0.00}{#
#1}}}
206 \expandafter\def\csname PY@tok@fm
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.00,
0.00,
1.00}{#
#1}}}
207 \expandafter\def\csname PY@tok@vc
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.10,
0.09,
0.49}{#
#1}}}
208 \expandafter\def\csname PY@tok@vg
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.10,
0.09,
0.49}{#
#1}}}
209 \expandafter\def\csname PY@tok@vi
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.10,
0.09,
0.49}{#
#1}}}
210 \expandafter\def\csname PY@tok@vm
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.10,
0.09,
0.49}{#
#1}}}
211 \expandafter\def\csname PY@tok@sa
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
212 \expandafter\def\csname PY@tok@sb
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
213 \expandafter\def\csname PY@tok@sc
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
214 \expandafter\def\csname PY@tok@dl
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
215 \expandafter\def\csname PY@tok@s2
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
216 \expandafter\def\csname PY@tok@sh
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
217 \expandafter\def\csname PY@tok@s1
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.73,
0.13,
0.13}{#
#1}}}
218 \expandafter\def\csname PY@tok@mb
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.40,
0.40,
0.40}{#
#1}}}
219 \expandafter\def\csname PY@tok@mf
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.40,
0.40,
0.40}{#
#1}}}
220 \expandafter\def\csname PY@tok@mh
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.40,
0.40,
0.40}{#
#1}}}
221 \expandafter\def\csname PY@tok@mi
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.40,
0.40,
0.40}{#
#1}}}
222 \expandafter\def\csname PY@tok@il
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.40,
0.40,
0.40}{#
#1}}}
223 \expandafter\def\csname PY@tok@mo
\endcsname{\def\PY@tc#
#1{\textcolor[rgb
]{0.40,
0.40,
0.40}{#
#1}}}
224 \expandafter\def\csname PY@tok@ch
\endcsname{\let\PY@it=
\textit\def\PY@tc#
#1{\textcolor[rgb
]{0.25,
0.50,
0.50}{#
#1}}}
225 \expandafter\def\csname PY@tok@cm
\endcsname{\let\PY@it=
\textit\def\PY@tc#
#1{\textcolor[rgb
]{0.25,
0.50,
0.50}{#
#1}}}
226 \expandafter\def\csname PY@tok@cpf
\endcsname{\let\PY@it=
\textit\def\PY@tc#
#1{\textcolor[rgb
]{0.25,
0.50,
0.50}{#
#1}}}
227 \expandafter\def\csname PY@tok@c1
\endcsname{\let\PY@it=
\textit\def\PY@tc#
#1{\textcolor[rgb
]{0.25,
0.50,
0.50}{#
#1}}}
228 \expandafter\def\csname PY@tok@cs
\endcsname{\let\PY@it=
\textit\def\PY@tc#
#1{\textcolor[rgb
]{0.25,
0.50,
0.50}{#
#1}}}
245 % for compatibility with earlier versions
252 % Exact colors from NB
253 \definecolor{incolor
}{rgb
}{0.0,
0.0,
0.5}
254 \definecolor{outcolor
}{rgb
}{0.545,
0.0,
0.0}
259 % Prevent overflowing lines due to hard-to-break entities
261 % Setup hyperref package
263 breaklinks=true,
% so long urls are correctly broken across lines
269 % Slightly bigger margins than the latex defaults
271 \geometry{verbose,tmargin=
1in,bmargin=
1in,lmargin=
1in,rmargin=
1in
}
283 \subsection*
{Introduction
}
285 Cette partie montre les résultats obtenus via des variantes de
286 l'algorithme décrit à la section
2, en utilisant le package présenté à
287 la section
3. Cet algorithme est systématiquement comparé à deux
288 approches naïves : * la moyenne des lendemains des jours "similaires"
289 dans tout le passé, c'est-à-dire prédiction = moyenne de tous les mardis
290 passé si le jour courant est un lndi par exemple. * la persistence,
291 reproduisant le jour courant ou allant chercher le lendemain de la
292 dernière journée "similaire" (même principe que ci-dessus ; argument
295 Concernant l'algorithme principal à voisins, trois variantes sont
296 étudiées dans cette partie : * avec simtype="mix" et raccordement
297 "Neighbors" dans le cas "non local", i.e. on va chercher des voisins
298 n'importe où du moment qu'ils correspondent au premier élément d'un
299 couple de deux jours consécutifs sans valeurs manquantes. * avec
300 simtype="endo" + raccordement "Neighbors" puis simtype="none" +
301 raccordement "Zero" (sans ajustement) dans le cas "local" : voisins de
302 même niveau de pollution et même saison.
304 Pour chaque période retenue -\/- chauffage, épandage, semaine non
305 polluée -\/- les erreurs de prédiction sont d'abord affichées, puis
306 quelques graphes de courbes réalisées/prévues (sur le jour "en moyenne
307 le plus facile" à gauche, et "en moyenne le plus difficile" à droite).
308 Ensuite plusieurs types de graphes apportant des précisions sur la
309 nature et la difficulté du problème viennent compléter ces premières
310 courbes. Concernant les graphes de filaments, la moitié gauche du graphe
311 correspond aux jours similaires au jour courant, tandis que la moitié
312 droite affiche les lendemains : ce sont donc les voisinages tels
313 qu'utilisés dans l'algorithme.
315 \begin{Verbatim
}[commandchars=\\\
{\
}]
316 {\color{incolor
}In
[{\color{incolor
}1}]:
} \PY{n
}{library
}\PY{p
}{(
}\PY{n
}{talweg
}\PY{p
}{)
}
318 \PY{n
}{P
} \PY{o
}{=
} \PY{l+m+mi
}{7} \PY{c+c1
}{\PYZsh{}instant de prévision
}
319 \PY{n
}{H
} \PY{o
}{=
} \PY{l+m+mi
}{17} \PY{c+c1
}{\PYZsh{}horizon (en heures)
}
321 \PY{n
}{ts
\PYZus{}data
} \PY{o
}{=
} \PY{n
}{read
}\PY{o
}{.
}\PY{n
}{csv
}\PY{p
}{(
}\PY{n
}{system
}\PY{o
}{.
}\PY{n
}{file
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{extdata
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{pm10
\PYZus{}mesures
\PYZus{}H
\PYZus{}loc
\PYZus{}report.csv
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}
322 \PY{n
}{package
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{talweg
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}\PY{p
}{)
}
323 \PY{n
}{exo
\PYZus{}data
} \PY{o
}{=
} \PY{n
}{read
}\PY{o
}{.
}\PY{n
}{csv
}\PY{p
}{(
}\PY{n
}{system
}\PY{o
}{.
}\PY{n
}{file
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{extdata
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{meteo
\PYZus{}extra
\PYZus{}noNAs.csv
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{package
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{talweg
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}\PY{p
}{)
}
324 \PY{c+c1
}{\PYZsh{} NOTE:
\PYZsq{}GMT
\PYZsq{} because DST gaps are filled and multiple values merged in above dataset.
}
325 \PY{c+c1
}{\PYZsh{} Prediction from P+
1 to P+H included.
}
326 \PY{n
}{data
} \PY{o
}{=
} \PY{n
}{getData
}\PY{p
}{(
}\PY{n
}{ts
\PYZus{}data
}\PY{p
}{,
} \PY{n
}{exo
\PYZus{}data
}\PY{p
}{,
} \PY{n
}{input
\PYZus{}tz
} \PY{o
}{=
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{GMT
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{working
\PYZus{}tz
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{GMT
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{predict
\PYZus{}at
}\PY{o
}{=
}\PY{n
}{P
}\PY{p
}{)
}
328 \PY{n
}{indices
\PYZus{}ch
} \PY{o
}{=
} \PY{n
}{seq
}\PY{p
}{(
}\PY{k
}{as
}\PY{o
}{.
}\PY{n
}{Date
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{2015\PYZhy{}01\PYZhy{}18}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}\PY{p
}{,
}\PY{k
}{as
}\PY{o
}{.
}\PY{n
}{Date
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{2015\PYZhy{}01\PYZhy{}24}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}\PY{p
}{,
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{days
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}
329 \PY{n
}{indices
\PYZus{}ep
} \PY{o
}{=
} \PY{n
}{seq
}\PY{p
}{(
}\PY{k
}{as
}\PY{o
}{.
}\PY{n
}{Date
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{2015\PYZhy{}03\PYZhy{}15}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}\PY{p
}{,
}\PY{k
}{as
}\PY{o
}{.
}\PY{n
}{Date
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{2015\PYZhy{}03\PYZhy{}21}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}\PY{p
}{,
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{days
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}
330 \PY{n
}{indices
\PYZus{}np
} \PY{o
}{=
} \PY{n
}{seq
}\PY{p
}{(
}\PY{k
}{as
}\PY{o
}{.
}\PY{n
}{Date
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{2015\PYZhy{}04\PYZhy{}26}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}\PY{p
}{,
}\PY{k
}{as
}\PY{o
}{.
}\PY{n
}{Date
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{2015\PYZhy{}05\PYZhy{}02}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}\PY{p
}{,
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{days
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{)
}
333 \subsection*
{Pollution par chauffage
}
335 \begin{Verbatim
}[commandchars=\\\
{\
}]
336 {\color{incolor
}In
[{\color{incolor
}2}]:
} \PY{n
}{p1
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ch
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
337 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{mix
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{FALSE
}\PY{p
}{)
}
338 \PY{n
}{p2
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ch
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
339 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{endo
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
340 \PY{n
}{p3
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ch
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
341 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{none
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
342 \PY{n
}{p4
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ch
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Average
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{)
}
343 \PY{n
}{p5
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ch
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Persistence
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
344 \PY{n
}{same
\PYZus{}day
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
347 \begin{Verbatim
}[commandchars=\\\
{\
}]
348 {\color{incolor
}In
[{\color{incolor
}3}]:
} \PY{n
}{e1
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
349 \PY{n
}{e2
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
350 \PY{n
}{e3
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
351 \PY{n
}{e4
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p4
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
352 \PY{n
}{e5
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p5
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
353 \PY{n
}{options
}\PY{p
}{(
}\PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{width
}\PY{o
}{=
}\PY{l+m+mi
}{9}\PY{p
}{,
} \PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{height
}\PY{o
}{=
}\PY{l+m+mi
}{7}\PY{p
}{)
}
354 \PY{n
}{plotError
}\PY{p
}{(
}\PY{n+nb
}{list
}\PY{p
}{(
}\PY{n
}{e1
}\PY{p
}{,
} \PY{n
}{e5
}\PY{p
}{,
} \PY{n
}{e4
}\PY{p
}{,
} \PY{n
}{e2
}\PY{p
}{,
} \PY{n
}{e3
}\PY{p
}{)
}\PY{p
}{,
} \PY{n
}{cols
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{,
}\PY{n
}{colors
}\PY{p
}{(
}\PY{p
}{)
}\PY{p
}{[}\PY{l+m+mi
}{258}\PY{p
}{]}\PY{p
}{,
}\PY{l+m+mi
}{4}\PY{p
}{,
}\PY{l+m+mi
}{6}\PY{p
}{)
}\PY{p
}{)
}
356 \PY{c+c1
}{\PYZsh{} noir: Neighbors non
\PYZhy{}local (p1), bleu: Neighbors local endo (p2),
}
357 \PY{c+c1
}{\PYZsh{} mauve: Neighbors local none (p3), vert: moyenne (p4),
}
358 \PY{c+c1
}{\PYZsh{} rouge: persistence (p5)
}
360 \PY{n
}{sum
\PYZus{}p123
} \PY{o
}{=
} \PY{n
}{e1
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
} \PY{o
}{+
} \PY{n
}{e2
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
} \PY{o
}{+
} \PY{n
}{e3
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
}
361 \PY{n
}{i
\PYZus{}np
} \PY{o
}{=
} \PY{n
}{which
}\PY{o
}{.
}\PY{n
}{min
}\PY{p
}{(
}\PY{n
}{sum
\PYZus{}p123
}\PY{p
}{)
} \PY{c+c1
}{\PYZsh{}indice de (veille de) jour
\PYZdq{}facile
\PYZdq{}}
362 \PY{n
}{i
\PYZus{}p
} \PY{o
}{=
} \PY{n
}{which
}\PY{o
}{.
}\PY{n
}{max
}\PY{p
}{(
}\PY{n
}{sum
\PYZus{}p123
}\PY{p
}{)
} \PY{c+c1
}{\PYZsh{}indice de (veille de) jour
\PYZdq{}difficile
\PYZdq{}}
366 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_4_0.png
}
368 { \hspace*
{\fill} \\
}
370 L'erreur absolue dépasse
20 sur
1 à
2 jours suivant les modèles (graphe
371 en haut à droite). C'est au-delà de ce que l'on aimerait voir (disons
372 +/-
5 environ). Sur cet exemple le modèle à voisins "contraint"
373 (local=TRUE) utilisant des pondérations basées sur les similarités de
374 forme (simtype="endo") obtient en moyenne les meilleurs résultats, avec
375 un MAPE restant en général inférieur à
30\% de
8h à
19h (
7+
1 à
7+
12 :
376 graphe en bas à gauche).
378 \begin{Verbatim
}[commandchars=\\\
{\
}]
379 {\color{incolor
}In
[{\color{incolor
}4}]:
} \PY{n
}{options
}\PY{p
}{(
}\PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{width
}\PY{o
}{=
}\PY{l+m+mi
}{9}\PY{p
}{,
} \PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{height
}\PY{o
}{=
}\PY{l+m+mi
}{4}\PY{p
}{)
}
380 \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
382 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
383 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
385 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
386 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
388 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p3 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
389 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p3 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
391 \PY{c+c1
}{\PYZsh{} Bleu: prévue, noir: réalisée
}
395 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_6_0.png
}
397 { \hspace*
{\fill} \\
}
400 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_6_1.png
}
402 { \hspace*
{\fill} \\
}
405 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_6_2.png
}
407 { \hspace*
{\fill} \\
}
409 Le jour "facile à prévoir", à gauche, se décompose en deux modes : un
410 léger vers
10h (
7+
3), puis un beaucoup plus marqué vers
19h (
7+
12). Ces
411 deux modes sont retrouvés par les trois variantes de l'algorithme à
412 voisins, bien que l'amplitude soit mal prédite. Concernant le jour
413 "difficile à prévoir" il y a deux pics en tout début et toute fin de
414 journée (à
9h et
23h), qui ne sont pas du tout anticipés par le
415 programme ; la grande amplitude de ces pics explique alors l'intensité
416 de l'erreur observée.
418 \begin{Verbatim
}[commandchars=\\\
{\
}]
419 {\color{incolor
}In
[{\color{incolor
}5}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
420 \PY{n
}{f
\PYZus{}np1
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
421 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
422 \PY{n
}{f
\PYZus{}p1
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
423 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
425 \PY{n
}{f
\PYZus{}np2
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
426 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
427 \PY{n
}{f
\PYZus{}p2
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
428 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
432 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_8_0.png
}
434 { \hspace*
{\fill} \\
}
437 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_8_1.png
}
439 { \hspace*
{\fill} \\
}
441 Les voisins du jour courant (période de
24h allant de
8h à
7h le
442 lendemain) sont affichés avec un trait d'autant plus sombre qu'ils sont
443 proches. On constate dans le cas non contraint (en haut) une grande
444 variabilité des lendemains, très nette sur le graphe en haut à droite.
445 Ceci indique une faible corrélation entre la forme d'une courbe sur une
446 période de
24h et la forme sur les
24h suivantes ;
\textbf{cette
447 observation est la source des difficultés rencontrées par l'algorithme
448 sur ce jeu de données.
}
450 \begin{Verbatim
}[commandchars=\\\
{\
}]
451 {\color{incolor
}In
[{\color{incolor
}6}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
452 \PY{n
}{plotFilamentsBox
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{FilBox p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
453 \PY{n
}{plotFilamentsBox
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{FilBox p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
455 \PY{c+c1
}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)
}
459 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_10_0.png
}
461 { \hspace*
{\fill} \\
}
463 Sur cette boxplot fonctionnelle (voir la fonction fboxplot() du package
464 R "rainbow") l'on constate essentiellement deux choses : le lendemain
465 d'un voisin "normal" peut se révéler être une courbe atypique, fort
466 éloignée de ce que l'on souhaite prédire (courbes bleue et rouge à
467 gauche) ; et, dans le cas d'une courbe à prédire atypique (à droite) la
468 plupart des voisins sont trop éloignés de la forme à prédire et forcent
469 ainsi un aplatissement de la prédiction.
471 \begin{Verbatim
}[commandchars=\\\
{\
}]
472 {\color{incolor
}In
[{\color{incolor
}7}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
473 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
474 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
476 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np2
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
477 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p2
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
479 \PY{c+c1
}{\PYZsh{} Variabilité globale en rouge ; sur les
60 voisins (+ lendemains) en noir
}
483 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_12_0.png
}
485 { \hspace*
{\fill} \\
}
488 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_12_1.png
}
490 { \hspace*
{\fill} \\
}
492 Ces graphes viennent confirmer l'impression visuelle après observation
493 des filaments. En effet, la variabilité globale en rouge (écart-type
494 heure par heure sur l'ensemble des couples "aujourd'hui/lendemain" du
495 passé) devrait rester nettement au-dessus de la variabilité locale,
496 calculée respectivement sur un voisinage d'une soixantaine de jours
497 (pour p1) et d'une dizaine de jours (pour p2). Or on constate que ce
498 n'est pas du tout le cas sur la période "lendemain", sauf en partie pour
499 p2 le jour
4 \(-\) mais ce n'est pas suffisant.
501 \begin{Verbatim
}[commandchars=\\\
{\
}]
502 {\color{incolor
}In
[{\color{incolor
}8}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
503 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
504 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
506 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
507 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
509 \PY{c+c1
}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite
}
513 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_14_0.png
}
515 { \hspace*
{\fill} \\
}
518 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_14_1.png
}
520 { \hspace*
{\fill} \\
}
522 Les poids se concentrent près de
0 dans le cas "non local" (p1), et se
523 répartissent assez uniformément dans \(
[0,
0.2]\) dans le cas "local"
524 (p2). C'est ce que l'on souhaite observer pour éviter d'effectuer une
527 \begin{Verbatim
}[commandchars=\\\
{\
}]
528 {\color{incolor
}In
[{\color{incolor
}9}]:
} \PY{c+c1
}{\PYZsh{} Fenêtres sélectionnées dans
]0,
7] / non
\PYZhy{}loc
2 premières lignes, loc ensuite
}
529 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
530 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
532 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
533 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
537 \item 0.168824188864717
538 \item 0.336969608767438
543 \item 0.18004595760919
544 \item 0.353963007643311
554 \subsection*
{Pollution par épandage
}
556 \begin{Verbatim
}[commandchars=\\\
{\
}]
557 {\color{incolor
}In
[{\color{incolor
}10}]:
} \PY{n
}{p1
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ep
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
558 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{mix
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{FALSE
}\PY{p
}{)
}
559 \PY{n
}{p2
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ep
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
560 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{endo
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
561 \PY{n
}{p3
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ep
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
562 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{none
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
563 \PY{n
}{p4
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ep
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Average
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{)
}
564 \PY{n
}{p5
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}ep
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Persistence
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
565 \PY{n
}{same
\PYZus{}day
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
568 \begin{Verbatim
}[commandchars=\\\
{\
}]
569 {\color{incolor
}In
[{\color{incolor
}11}]:
} \PY{n
}{e1
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
570 \PY{n
}{e2
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
571 \PY{n
}{e3
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
572 \PY{n
}{e4
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p4
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
573 \PY{n
}{e5
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p5
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
574 \PY{n
}{options
}\PY{p
}{(
}\PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{width
}\PY{o
}{=
}\PY{l+m+mi
}{9}\PY{p
}{,
} \PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{height
}\PY{o
}{=
}\PY{l+m+mi
}{7}\PY{p
}{)
}
575 \PY{n
}{plotError
}\PY{p
}{(
}\PY{n+nb
}{list
}\PY{p
}{(
}\PY{n
}{e1
}\PY{p
}{,
} \PY{n
}{e5
}\PY{p
}{,
} \PY{n
}{e4
}\PY{p
}{,
} \PY{n
}{e2
}\PY{p
}{,
} \PY{n
}{e3
}\PY{p
}{)
}\PY{p
}{,
} \PY{n
}{cols
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{,
}\PY{n
}{colors
}\PY{p
}{(
}\PY{p
}{)
}\PY{p
}{[}\PY{l+m+mi
}{258}\PY{p
}{]}\PY{p
}{,
}\PY{l+m+mi
}{4}\PY{p
}{,
}\PY{l+m+mi
}{6}\PY{p
}{)
}\PY{p
}{)
}
577 \PY{c+c1
}{\PYZsh{} noir: Neighbors non
\PYZhy{}local (p1), bleu: Neighbors local endo (p2),
}
578 \PY{c+c1
}{\PYZsh{} mauve: Neighbors local none (p3), vert: moyenne (p4),
}
579 \PY{c+c1
}{\PYZsh{} rouge: persistence (p5)
}
581 \PY{n
}{sum
\PYZus{}p123
} \PY{o
}{=
} \PY{n
}{e1
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
} \PY{o
}{+
} \PY{n
}{e2
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
} \PY{o
}{+
} \PY{n
}{e3
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
}
582 \PY{n
}{i
\PYZus{}np
} \PY{o
}{=
} \PY{n
}{which
}\PY{o
}{.
}\PY{n
}{min
}\PY{p
}{(
}\PY{n
}{sum
\PYZus{}p123
}\PY{p
}{)
} \PY{c+c1
}{\PYZsh{}indice de (veille de) jour
\PYZdq{}facile
\PYZdq{}}
583 \PY{n
}{i
\PYZus{}p
} \PY{o
}{=
} \PY{n
}{which
}\PY{o
}{.
}\PY{n
}{max
}\PY{p
}{(
}\PY{n
}{sum
\PYZus{}p123
}\PY{p
}{)
} \PY{c+c1
}{\PYZsh{}indice de (veille de) jour
\PYZdq{}difficile
\PYZdq{}}
587 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_19_0.png
}
589 { \hspace*
{\fill} \\
}
591 Il est difficile dans ce cas de déterminer une méthode meilleure que les
592 autres : elles donnent toutes de plutôt mauvais résultats, avec une
593 erreur absolue moyennée sur la journée dépassant presque toujours
15
594 (graphe en haut à droite).
596 \begin{Verbatim
}[commandchars=\\\
{\
}]
597 {\color{incolor
}In
[{\color{incolor
}12}]:
} \PY{n
}{options
}\PY{p
}{(
}\PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{width
}\PY{o
}{=
}\PY{l+m+mi
}{9}\PY{p
}{,
} \PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{height
}\PY{o
}{=
}\PY{l+m+mi
}{4}\PY{p
}{)
}
598 \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
600 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
601 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
603 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
604 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
606 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p3 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
607 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p3 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
609 \PY{c+c1
}{\PYZsh{} Bleu: prévue, noir: réalisée
}
613 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_21_0.png
}
615 { \hspace*
{\fill} \\
}
618 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_21_1.png
}
620 { \hspace*
{\fill} \\
}
623 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_21_2.png
}
625 { \hspace*
{\fill} \\
}
627 Dans le cas d'un jour "facile" à prédire \(-\) à gauche \(-\) la forme
628 est plus ou moins retrouvée, mais le niveau moyen est trop bas (courbe
629 en bleu). Concernant le jour "difficile" à droite, non seulement la
630 forme n'est pas anticipée mais surtout le niveau prédit est très
631 inférieur au niveau de pollution observé. Comme on le voit ci-dessous
632 cela découle d'un manque de voisins au comportement similaire.
634 \begin{Verbatim
}[commandchars=\\\
{\
}]
635 {\color{incolor
}In
[{\color{incolor
}13}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
636 \PY{n
}{f
\PYZus{}np1
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
637 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
638 \PY{n
}{f
\PYZus{}p1
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
639 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
641 \PY{n
}{f
\PYZus{}np2
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
642 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
643 \PY{n
}{f
\PYZus{}p2
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
644 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
648 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_23_0.png
}
650 { \hspace*
{\fill} \\
}
653 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_23_1.png
}
655 { \hspace*
{\fill} \\
}
657 Les observations sont les mêmes qu'au paragraphe précédent : trop de
658 variabilité des lendemains (et même des voisins du jour courant).
660 \begin{Verbatim
}[commandchars=\\\
{\
}]
661 {\color{incolor
}In
[{\color{incolor
}14}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
662 \PY{n
}{plotFilamentsBox
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{FilBox p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
663 \PY{n
}{plotFilamentsBox
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{FilBox p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
665 \PY{c+c1
}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)
}
669 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_25_0.png
}
671 { \hspace*
{\fill} \\
}
673 On constate la présence d'un voisin au lendemain complètement atypique
674 avec un pic en début de journée (courbe en vert à gauche), et d'un autre
675 phénomène semblable avec la courbe rouge sur le graphe de droite. Ajouté
676 au fait que le lendemain à prévoir est lui-même un jour "hors norme",
677 cela montre l'impossibilité de bien prévoir une courbe en utilisant
678 l'algorithme à voisins.
680 \begin{Verbatim
}[commandchars=\\\
{\
}]
681 {\color{incolor
}In
[{\color{incolor
}15}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
682 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
683 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
685 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np2
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
686 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p2
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
688 \PY{c+c1
}{\PYZsh{} Variabilité globale en rouge ; sur les
60 voisins (+ lendemains) en noir
}
692 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_27_0.png
}
694 { \hspace*
{\fill} \\
}
697 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_27_1.png
}
699 { \hspace*
{\fill} \\
}
701 Comme précédemment les variabilités locales et globales sont confondues
702 dans les parties droites des graphes \(-\) sauf pour la version "locale"
703 sur le jour "facile" ; mais cette bonne propriété n'est pas suffisante
704 si l'on ne trouve pas les bons poids à appliquer.
706 \begin{Verbatim
}[commandchars=\\\
{\
}]
707 {\color{incolor
}In
[{\color{incolor
}16}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
708 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
709 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
711 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
712 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
714 \PY{c+c1
}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite
}
718 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_29_0.png
}
720 { \hspace*
{\fill} \\
}
723 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_29_1.png
}
725 { \hspace*
{\fill} \\
}
727 En comparaison avec le pragraphe précédent on retrouve le même (bon)
728 comportement des poids pour la version "non locale". En revanche la
729 fenêtre optimisée est trop grande sur le jour "facile" pour la méthode
730 "locale" (voir affichage ci-dessous) : il en résulte des poids tous
731 semblables autour de
0.084, l'algorithme effectue donc une moyenne
732 simple \(-\) expliquant pourquoi les courbes mauve et bleue sont très
733 proches sur le graphe d'erreurs.
735 \begin{Verbatim
}[commandchars=\\\
{\
}]
736 {\color{incolor
}In
[{\color{incolor
}17}]:
} \PY{c+c1
}{\PYZsh{} Fenêtres sélectionnées dans
]0,
7] / non
\PYZhy{}loc
2 premières lignes, loc ensuite
}
737 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
738 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
740 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
741 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
745 \item 0.206604806619633
746 \item 0.661854053860987
751 \item 0.367945958636072
752 \item 0.244429852740092
762 \subsection*
{Semaine non polluée
}
764 \begin{Verbatim
}[commandchars=\\\
{\
}]
765 {\color{incolor
}In
[{\color{incolor
}18}]:
} \PY{n
}{p1
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}np
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
766 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{mix
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{FALSE
}\PY{p
}{)
}
767 \PY{n
}{p2
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}np
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
768 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{endo
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
769 \PY{n
}{p3
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}np
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Neighbors
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
770 \PY{n
}{simtype
}\PY{o
}{=
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{none
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{local
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
771 \PY{n
}{p4
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}np
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Average
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{)
}
772 \PY{n
}{p5
} \PY{o
}{=
} \PY{n
}{computeForecast
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{indices
\PYZus{}np
}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Persistence
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Zero
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
} \PY{n
}{horizon
}\PY{o
}{=
}\PY{n
}{H
}\PY{p
}{,
}
773 \PY{n
}{same
\PYZus{}day
}\PY{o
}{=
}\PY{n
}{FALSE
}\PY{p
}{)
}
776 \begin{Verbatim
}[commandchars=\\\
{\
}]
777 {\color{incolor
}In
[{\color{incolor
}19}]:
} \PY{n
}{e1
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
778 \PY{n
}{e2
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
779 \PY{n
}{e3
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
780 \PY{n
}{e4
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p4
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
781 \PY{n
}{e5
} \PY{o
}{=
} \PY{n
}{computeError
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p5
}\PY{p
}{,
} \PY{n
}{H
}\PY{p
}{)
}
782 \PY{n
}{options
}\PY{p
}{(
}\PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{width
}\PY{o
}{=
}\PY{l+m+mi
}{9}\PY{p
}{,
} \PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{height
}\PY{o
}{=
}\PY{l+m+mi
}{7}\PY{p
}{)
}
783 \PY{n
}{plotError
}\PY{p
}{(
}\PY{n+nb
}{list
}\PY{p
}{(
}\PY{n
}{e1
}\PY{p
}{,
} \PY{n
}{e5
}\PY{p
}{,
} \PY{n
}{e4
}\PY{p
}{,
} \PY{n
}{e2
}\PY{p
}{,
} \PY{n
}{e3
}\PY{p
}{)
}\PY{p
}{,
} \PY{n
}{cols
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{,
}\PY{n
}{colors
}\PY{p
}{(
}\PY{p
}{)
}\PY{p
}{[}\PY{l+m+mi
}{258}\PY{p
}{]}\PY{p
}{,
}\PY{l+m+mi
}{4}\PY{p
}{,
}\PY{l+m+mi
}{6}\PY{p
}{)
}\PY{p
}{)
}
785 \PY{c+c1
}{\PYZsh{} noir: Neighbors non
\PYZhy{}local (p1), bleu: Neighbors local endo (p2),
}
786 \PY{c+c1
}{\PYZsh{} mauve: Neighbors local none (p3), vert: moyenne (p4),
}
787 \PY{c+c1
}{\PYZsh{} rouge: persistence (p5)
}
789 \PY{n
}{sum
\PYZus{}p123
} \PY{o
}{=
} \PY{n
}{e1
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
} \PY{o
}{+
} \PY{n
}{e2
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
} \PY{o
}{+
} \PY{n
}{e3
}\PY{err
}{\PYZdl{}}\PY{n+nb
}{abs
}\PY{err
}{\PYZdl{}}\PY{n
}{indices
}
790 \PY{n
}{i
\PYZus{}np
} \PY{o
}{=
} \PY{n
}{which
}\PY{o
}{.
}\PY{n
}{min
}\PY{p
}{(
}\PY{n
}{sum
\PYZus{}p123
}\PY{p
}{)
} \PY{c+c1
}{\PYZsh{}indice de (veille de) jour
\PYZdq{}facile
\PYZdq{}}
791 \PY{n
}{i
\PYZus{}p
} \PY{o
}{=
} \PY{n
}{which
}\PY{o
}{.
}\PY{n
}{max
}\PY{p
}{(
}\PY{n
}{sum
\PYZus{}p123
}\PY{p
}{)
} \PY{c+c1
}{\PYZsh{}indice de (veille de) jour
\PYZdq{}difficile
\PYZdq{}}
795 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_34_0.png
}
797 { \hspace*
{\fill} \\
}
799 Dans ce cas plus favorable les intensité des erreurs absolues ont
800 clairement diminué : elles restent souvent en dessous de
5. En revanche
801 le MAPE moyen reste au-delà de
20\%, et même souvent plus de
30\%. Comme
802 dans le cas de l'épandage on constate une croissance globale de la
803 courbe journalière d'erreur absolue moyenne (en haut à gauche) ; ceci
804 peut être dû au fait que l'on ajuste le niveau du jour à prédire en le
805 recollant sur la dernière valeur observée.
807 \begin{Verbatim
}[commandchars=\\\
{\
}]
808 {\color{incolor
}In
[{\color{incolor
}20}]:
} \PY{n
}{options
}\PY{p
}{(
}\PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{width
}\PY{o
}{=
}\PY{l+m+mi
}{9}\PY{p
}{,
} \PY{n+nb
}{repr
}\PY{o
}{.
}\PY{n
}{plot
}\PY{o
}{.
}\PY{n
}{height
}\PY{o
}{=
}\PY{l+m+mi
}{4}\PY{p
}{)
}
809 \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
811 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
812 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
814 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
815 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
817 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p3 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
818 \PY{n
}{plotPredReal
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p3
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{PredReal p3 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
820 \PY{c+c1
}{\PYZsh{} Bleu: prévue, noir: réalisée
}
824 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_36_0.png
}
826 { \hspace*
{\fill} \\
}
829 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_36_1.png
}
831 { \hspace*
{\fill} \\
}
834 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_36_2.png
}
836 { \hspace*
{\fill} \\
}
838 La forme est raisonnablement retrouvée pour les méthodes "locales",
839 l'autre version lissant trop les prédictions. Le biais reste cependant
840 important, surtout en fin de journée sur le jour "difficile".
842 \begin{Verbatim
}[commandchars=\\\
{\
}]
843 {\color{incolor
}In
[{\color{incolor
}21}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
844 \PY{n
}{f
\PYZus{}np1
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
845 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
846 \PY{n
}{f
\PYZus{}p1
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
847 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
849 \PY{n
}{f
\PYZus{}np2
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
850 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
851 \PY{n
}{f
\PYZus{}p2
} \PY{o
}{=
} \PY{n
}{computeFilaments
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{,
} \PY{n
}{plot
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
852 \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Filaments p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
856 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_38_0.png
}
858 { \hspace*
{\fill} \\
}
861 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_38_1.png
}
863 { \hspace*
{\fill} \\
}
865 Les graphes de filaments ont encore la même allure, avec une assez
866 grande variabilité observée. Cette observation est cependant trompeuse,
867 comme l'indique plus bas le graphe de variabilité relative.
869 \begin{Verbatim
}[commandchars=\\\
{\
}]
870 {\color{incolor
}In
[{\color{incolor
}22}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
871 \PY{n
}{plotFilamentsBox
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{FilBox p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
872 \PY{n
}{plotFilamentsBox
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{FilBox p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
874 \PY{c+c1
}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)
}
878 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_40_0.png
}
880 { \hspace*
{\fill} \\
}
882 On peut réappliquer les mêmes remarques qu'auparavant sur les boxplots
883 fonctionnels : lendemains de voisins atypiques, courbe à prévoir
884 elle-même légèrement "hors norme".
886 \begin{Verbatim
}[commandchars=\\\
{\
}]
887 {\color{incolor
}In
[{\color{incolor
}23}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
888 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
889 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p1
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
891 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}np2
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
892 \PY{n
}{plotRelVar
}\PY{p
}{(
}\PY{n
}{data
}\PY{p
}{,
} \PY{n
}{f
\PYZus{}p2
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{StdDev p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
894 \PY{c+c1
}{\PYZsh{} Variabilité globale en rouge ; sur les
60 voisins (+ lendemains) en noir
}
898 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_42_0.png
}
900 { \hspace*
{\fill} \\
}
903 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_42_1.png
}
905 { \hspace*
{\fill} \\
}
907 Cette fois la situation idéale est observée : la variabilité globale est
908 nettement au-dessus de la variabilité locale. Bien que cela ne suffise
909 pas à obtenir de bonnes prédictions de forme, on constate au moins
910 l'amélioration dans la prédiction du niveau.
912 \begin{Verbatim
}[commandchars=\\\
{\
}]
913 {\color{incolor
}In
[{\color{incolor
}24}]:
} \PY{n
}{par
}\PY{p
}{(
}\PY{n
}{mfrow
}\PY{o
}{=
}\PY{n
}{c
}\PY{p
}{(
}\PY{l+m+mi
}{1}\PY{p
}{,
}\PY{l+m+mi
}{2}\PY{p
}{)
}\PY{p
}{)
}
914 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
915 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p1
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p1 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
917 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{p
}{)
}
918 \PY{n
}{plotSimils
}\PY{p
}{(
}\PY{n
}{p2
}\PY{p
}{,
} \PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{;
} \PY{n
}{title
}\PY{p
}{(
}\PY{n
}{paste
}\PY{p
}{(
}\PY{l+s+s2
}{\PYZdq{}}\PY{l+s+s2
}{Weights p2 day
}\PY{l+s+s2
}{\PYZdq{}}\PY{p
}{,
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{p
}{)
}
920 \PY{c+c1
}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite
}
924 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_44_0.png
}
926 { \hspace*
{\fill} \\
}
929 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_44_1.png
}
931 { \hspace*
{\fill} \\
}
933 Concernant les poids en revanche, deux cas a priori mauvais se cumulent
934 : * les poids dans le cas "non local" ne sont pas assez concentrés
935 autour de
0, menant à un lissage trop fort \(-\) comme observé sur les
936 graphes des courbes réalisées/prévues ; * les poids dans le cas "local"
937 sont trop semblables (à cause de la trop grande fenêtre optimisée par
938 validation croisée, cf. ci-dessous), résultant encore en une moyenne
939 simple \(-\) mais sur moins de jours, plus proches du jour courant.
941 \begin{Verbatim
}[commandchars=\\\
{\
}]
942 {\color{incolor
}In
[{\color{incolor
}25}]:
} \PY{c+c1
}{\PYZsh{} Fenêtres sélectionnées dans
]0,
7] / non
\PYZhy{}loc
2 premières lignes, loc ensuite
}
943 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
944 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
946 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
947 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
951 \item 0.205055690975915
952 \item 0.703482647754766
957 \item 1.1038650998802
958 \item 0.885155748316133
970 Nos algorithmes à voisins ne sont pas adaptés à ce jeu de données où la
971 forme varie considérablement d'un jour à l'autre. Plus généralement
972 cette décorrélation de forme rend ardue la tâche de prévision pour toute
973 autre méthode \(-\) du moins, nous ne savons pas comment procéder pour
974 parvenir à une bonne précision.
976 Toutefois, un espoir reste permis par exemple en aggréger les courbes
977 spatialement (sur plusieurs stations situées dans la même agglomération
978 ou dans une même zone).
981 % Add a bibliography block to the postdoc