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
}
274 \graphicspath{{./figs/
}}
284 \subsection*
{Introduction
}
286 Cette partie montre les résultats obtenus via des variantes de
287 l'algorithme décrit à la section
2, en utilisant le package présenté à
288 la section
3. Cet algorithme est systématiquement comparé à deux
289 approches naïves : * la moyenne des lendemains des jours "similaires"
290 dans tout le passé, c'est-à-dire prédiction = moyenne de tous les mardis
291 passé si le jour courant est un lndi par exemple. * la persistence,
292 reproduisant le jour courant ou allant chercher le lendemain de la
293 dernière journée "similaire" (même principe que ci-dessus ; argument
296 Concernant l'algorithme principal à voisins, trois variantes sont
297 étudiées dans cette partie : * avec simtype="mix" et raccordement
298 "Neighbors" dans le cas "non local", i.e. on va chercher des voisins
299 n'importe où du moment qu'ils correspondent au premier élément d'un
300 couple de deux jours consécutifs sans valeurs manquantes. * avec
301 simtype="endo" + raccordement "Neighbors" puis simtype="none" +
302 raccordement "Zero" (sans ajustement) dans le cas "local" : voisins de
303 même niveau de pollution et même saison.
305 Pour chaque période retenue -\/- chauffage, épandage, semaine non
306 polluée -\/- les erreurs de prédiction sont d'abord affichées, puis
307 quelques graphes de courbes réalisées/prévues (sur le jour "en moyenne
308 le plus facile" à gauche, et "en moyenne le plus difficile" à droite).
309 Ensuite plusieurs types de graphes apportant des précisions sur la
310 nature et la difficulté du problème viennent compléter ces premières
311 courbes. Concernant les graphes de filaments, la moitié gauche du graphe
312 correspond aux jours similaires au jour courant, tandis que la moitié
313 droite affiche les lendemains : ce sont donc les voisinages tels
314 qu'utilisés dans l'algorithme.
316 \begin{Verbatim
}[commandchars=\\\
{\
}]
317 {\color{incolor
}In
[{\color{incolor
}1}]:
} \PY{n
}{library
}\PY{p
}{(
}\PY{n
}{talweg
}\PY{p
}{)
}
319 \PY{n
}{P
} \PY{o
}{=
} \PY{l+m+mi
}{7} \PY{c+c1
}{\PYZsh{}instant de prévision
}
320 \PY{n
}{H
} \PY{o
}{=
} \PY{l+m+mi
}{17} \PY{c+c1
}{\PYZsh{}horizon (en heures)
}
322 \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
}{,
}
323 \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{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
}{)
}
325 \PY{c+c1
}{\PYZsh{} NOTE:
\PYZsq{}GMT
\PYZsq{} because DST gaps are filled and multiple values merged in above dataset.
}
326 \PY{c+c1
}{\PYZsh{} Prediction from P+
1 to P+H included.
}
327 \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
}{)
}
329 \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
}{)
}
330 \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
}{)
}
331 \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
}{)
}
334 \subsection*
{Pollution par chauffage
}
336 \begin{Verbatim
}[commandchars=\\\
{\
}]
337 {\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
}{,
}
338 \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
}{)
}
339 \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
}{,
}
340 \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
}{)
}
341 \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
}{,
}
342 \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
}{)
}
343 \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
}{)
}
344 \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
}{,
}
345 \PY{n
}{same
\PYZus{}day
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
348 \begin{Verbatim
}[commandchars=\\\
{\
}]
349 {\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
}{)
}
350 \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
}{)
}
351 \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
}{)
}
352 \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
}{)
}
353 \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
}{)
}
354 \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
}{)
}
355 \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
}{)
}
357 \PY{c+c1
}{\PYZsh{} noir: Neighbors non
\PYZhy{}local (p1), bleu: Neighbors local endo (p2),
}
358 \PY{c+c1
}{\PYZsh{} mauve: Neighbors local none (p3), vert: moyenne (p4),
}
359 \PY{c+c1
}{\PYZsh{} rouge: persistence (p5)
}
361 \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
}
362 \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{}}
363 \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{}}
367 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_4_0.png
}
369 { \hspace*
{\fill} \\
}
371 L'erreur absolue dépasse
20 sur
1 à
2 jours suivant les modèles (graphe
372 en haut à droite). C'est au-delà de ce que l'on aimerait voir (disons
373 +/-
5 environ). Sur cet exemple le modèle à voisins "contraint"
374 (local=TRUE) utilisant des pondérations basées sur les similarités de
375 forme (simtype="endo") obtient en moyenne les meilleurs résultats, avec
376 un MAPE restant en général inférieur à
30\% de
8h à
19h (
7+
1 à
7+
12 :
377 graphe en bas à gauche).
379 \begin{Verbatim
}[commandchars=\\\
{\
}]
380 {\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
}{)
}
381 \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
}{)
}
383 \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
}{)
}
384 \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
}{)
}
386 \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
}{)
}
387 \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
}{)
}
389 \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
}{)
}
390 \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
}{)
}
392 \PY{c+c1
}{\PYZsh{} Bleu: prévue, noir: réalisée
}
396 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_6_0.png
}
398 { \hspace*
{\fill} \\
}
401 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_6_1.png
}
403 { \hspace*
{\fill} \\
}
406 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_6_2.png
}
408 { \hspace*
{\fill} \\
}
410 Le jour "facile à prévoir", à gauche, se décompose en deux modes : un
411 léger vers
10h (
7+
3), puis un beaucoup plus marqué vers
19h (
7+
12). Ces
412 deux modes sont retrouvés par les trois variantes de l'algorithme à
413 voisins, bien que l'amplitude soit mal prédite. Concernant le jour
414 "difficile à prévoir" il y a deux pics en tout début et toute fin de
415 journée (à
9h et
23h), qui ne sont pas du tout anticipés par le
416 programme ; la grande amplitude de ces pics explique alors l'intensité
417 de l'erreur observée.
419 \begin{Verbatim
}[commandchars=\\\
{\
}]
420 {\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
}{)
}
421 \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
}{)
}
422 \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
}{)
}
423 \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
}{)
}
424 \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
}{)
}
426 \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
}{)
}
427 \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
}{)
}
428 \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
}{)
}
429 \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
}{)
}
433 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_8_0.png
}
435 { \hspace*
{\fill} \\
}
438 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_8_1.png
}
440 { \hspace*
{\fill} \\
}
442 Les voisins du jour courant (période de
24h allant de
8h à
7h le
443 lendemain) sont affichés avec un trait d'autant plus sombre qu'ils sont
444 proches. On constate dans le cas non contraint (en haut) une grande
445 variabilité des lendemains, très nette sur le graphe en haut à droite.
446 Ceci indique une faible corrélation entre la forme d'une courbe sur une
447 période de
24h et la forme sur les
24h suivantes ;
\textbf{cette
448 observation est la source des difficultés rencontrées par l'algorithme
449 sur ce jeu de données.
}
451 \begin{Verbatim
}[commandchars=\\\
{\
}]
452 {\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
}{)
}
453 \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
}{)
}
454 \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
}{)
}
456 \PY{c+c1
}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)
}
460 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_10_0.png
}
462 { \hspace*
{\fill} \\
}
464 Sur cette boxplot fonctionnelle (voir la fonction fboxplot() du package
465 R "rainbow") l'on constate essentiellement deux choses : le lendemain
466 d'un voisin "normal" peut se révéler être une courbe atypique, fort
467 éloignée de ce que l'on souhaite prédire (courbes bleue et rouge à
468 gauche) ; et, dans le cas d'une courbe à prédire atypique (à droite) la
469 plupart des voisins sont trop éloignés de la forme à prédire et forcent
470 ainsi un aplatissement de la prédiction.
472 \begin{Verbatim
}[commandchars=\\\
{\
}]
473 {\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
}{)
}
474 \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
}{)
}
475 \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
}{)
}
477 \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
}{)
}
478 \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
}{)
}
480 \PY{c+c1
}{\PYZsh{} Variabilité globale en rouge ; sur les
60 voisins (+ lendemains) en noir
}
484 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_12_0.png
}
486 { \hspace*
{\fill} \\
}
489 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_12_1.png
}
491 { \hspace*
{\fill} \\
}
493 Ces graphes viennent confirmer l'impression visuelle après observation
494 des filaments. En effet, la variabilité globale en rouge (écart-type
495 heure par heure sur l'ensemble des couples "aujourd'hui/lendemain" du
496 passé) devrait rester nettement au-dessus de la variabilité locale,
497 calculée respectivement sur un voisinage d'une soixantaine de jours
498 (pour p1) et d'une dizaine de jours (pour p2). Or on constate que ce
499 n'est pas du tout le cas sur la période "lendemain", sauf en partie pour
500 p2 le jour
4 \(-\) mais ce n'est pas suffisant.
502 \begin{Verbatim
}[commandchars=\\\
{\
}]
503 {\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
}{)
}
504 \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
}{)
}
505 \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
}{)
}
507 \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
}{)
}
508 \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
}{)
}
510 \PY{c+c1
}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite
}
514 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_14_0.png
}
516 { \hspace*
{\fill} \\
}
519 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_14_1.png
}
521 { \hspace*
{\fill} \\
}
523 Les poids se concentrent près de
0 dans le cas "non local" (p1), et se
524 répartissent assez uniformément dans \(
[0,
0.2]\) dans le cas "local"
525 (p2). C'est ce que l'on souhaite observer pour éviter d'effectuer une
528 \begin{Verbatim
}[commandchars=\\\
{\
}]
529 {\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
}
530 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
531 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
533 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
534 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
538 \item 0.168824188864717
539 \item 0.336969608767438
544 \item 0.18004595760919
545 \item 0.353963007643311
555 \subsection*
{Pollution par épandage
}
557 \begin{Verbatim
}[commandchars=\\\
{\
}]
558 {\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
}{,
}
559 \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
}{)
}
560 \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
}{,
}
561 \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
}{)
}
562 \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
}{,
}
563 \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
}{)
}
564 \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
}{)
}
565 \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
}{,
}
566 \PY{n
}{same
\PYZus{}day
}\PY{o
}{=
}\PY{n
}{TRUE
}\PY{p
}{)
}
569 \begin{Verbatim
}[commandchars=\\\
{\
}]
570 {\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
}{)
}
571 \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
}{)
}
572 \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
}{)
}
573 \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
}{)
}
574 \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
}{)
}
575 \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
}{)
}
576 \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
}{)
}
578 \PY{c+c1
}{\PYZsh{} noir: Neighbors non
\PYZhy{}local (p1), bleu: Neighbors local endo (p2),
}
579 \PY{c+c1
}{\PYZsh{} mauve: Neighbors local none (p3), vert: moyenne (p4),
}
580 \PY{c+c1
}{\PYZsh{} rouge: persistence (p5)
}
582 \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
}
583 \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{}}
584 \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{}}
588 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_19_0.png
}
590 { \hspace*
{\fill} \\
}
592 Il est difficile dans ce cas de déterminer une méthode meilleure que les
593 autres : elles donnent toutes de plutôt mauvais résultats, avec une
594 erreur absolue moyennée sur la journée dépassant presque toujours
15
595 (graphe en haut à droite).
597 \begin{Verbatim
}[commandchars=\\\
{\
}]
598 {\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
}{)
}
599 \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
}{)
}
601 \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
}{)
}
602 \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
}{)
}
604 \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
}{)
}
605 \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
}{)
}
607 \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
}{)
}
608 \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
}{)
}
610 \PY{c+c1
}{\PYZsh{} Bleu: prévue, noir: réalisée
}
614 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_21_0.png
}
616 { \hspace*
{\fill} \\
}
619 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_21_1.png
}
621 { \hspace*
{\fill} \\
}
624 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_21_2.png
}
626 { \hspace*
{\fill} \\
}
628 Dans le cas d'un jour "facile" à prédire \(-\) à gauche \(-\) la forme
629 est plus ou moins retrouvée, mais le niveau moyen est trop bas (courbe
630 en bleu). Concernant le jour "difficile" à droite, non seulement la
631 forme n'est pas anticipée mais surtout le niveau prédit est très
632 inférieur au niveau de pollution observé. Comme on le voit ci-dessous
633 cela découle d'un manque de voisins au comportement similaire.
635 \begin{Verbatim
}[commandchars=\\\
{\
}]
636 {\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
}{)
}
637 \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
}{)
}
638 \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
}{)
}
639 \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
}{)
}
640 \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
}{)
}
642 \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
}{)
}
643 \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
}{)
}
644 \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
}{)
}
645 \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
}{)
}
649 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_23_0.png
}
651 { \hspace*
{\fill} \\
}
654 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_23_1.png
}
656 { \hspace*
{\fill} \\
}
658 Les observations sont les mêmes qu'au paragraphe précédent : trop de
659 variabilité des lendemains (et même des voisins du jour courant).
661 \begin{Verbatim
}[commandchars=\\\
{\
}]
662 {\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
}{)
}
663 \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
}{)
}
664 \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
}{)
}
666 \PY{c+c1
}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)
}
670 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_25_0.png
}
672 { \hspace*
{\fill} \\
}
674 On constate la présence d'un voisin au lendemain complètement atypique
675 avec un pic en début de journée (courbe en vert à gauche), et d'un autre
676 phénomène semblable avec la courbe rouge sur le graphe de droite. Ajouté
677 au fait que le lendemain à prévoir est lui-même un jour "hors norme",
678 cela montre l'impossibilité de bien prévoir une courbe en utilisant
679 l'algorithme à voisins.
681 \begin{Verbatim
}[commandchars=\\\
{\
}]
682 {\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
}{)
}
683 \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
}{)
}
684 \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
}{)
}
686 \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
}{)
}
687 \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
}{)
}
689 \PY{c+c1
}{\PYZsh{} Variabilité globale en rouge ; sur les
60 voisins (+ lendemains) en noir
}
693 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_27_0.png
}
695 { \hspace*
{\fill} \\
}
698 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_27_1.png
}
700 { \hspace*
{\fill} \\
}
702 Comme précédemment les variabilités locales et globales sont confondues
703 dans les parties droites des graphes \(-\) sauf pour la version "locale"
704 sur le jour "facile" ; mais cette bonne propriété n'est pas suffisante
705 si l'on ne trouve pas les bons poids à appliquer.
707 \begin{Verbatim
}[commandchars=\\\
{\
}]
708 {\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
}{)
}
709 \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
}{)
}
710 \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
}{)
}
712 \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
}{)
}
713 \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
}{)
}
715 \PY{c+c1
}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite
}
719 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_29_0.png
}
721 { \hspace*
{\fill} \\
}
724 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_29_1.png
}
726 { \hspace*
{\fill} \\
}
728 En comparaison avec le pragraphe précédent on retrouve le même (bon)
729 comportement des poids pour la version "non locale". En revanche la
730 fenêtre optimisée est trop grande sur le jour "facile" pour la méthode
731 "locale" (voir affichage ci-dessous) : il en résulte des poids tous
732 semblables autour de
0.084, l'algorithme effectue donc une moyenne
733 simple \(-\) expliquant pourquoi les courbes mauve et bleue sont très
734 proches sur le graphe d'erreurs.
736 \begin{Verbatim
}[commandchars=\\\
{\
}]
737 {\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
}
738 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
739 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
741 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
742 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
746 \item 0.206604806619633
747 \item 0.661854053860987
752 \item 0.367945958636072
753 \item 0.244429852740092
763 \subsection*
{Semaine non polluée
}
765 \begin{Verbatim
}[commandchars=\\\
{\
}]
766 {\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
}{,
}
767 \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
}{)
}
768 \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
}{,
}
769 \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
}{)
}
770 \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
}{,
}
771 \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
}{)
}
772 \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
}{)
}
773 \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
}{,
}
774 \PY{n
}{same
\PYZus{}day
}\PY{o
}{=
}\PY{n
}{FALSE
}\PY{p
}{)
}
777 \begin{Verbatim
}[commandchars=\\\
{\
}]
778 {\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
}{)
}
779 \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
}{)
}
780 \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
}{)
}
781 \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
}{)
}
782 \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
}{)
}
783 \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
}{)
}
784 \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
}{)
}
786 \PY{c+c1
}{\PYZsh{} noir: Neighbors non
\PYZhy{}local (p1), bleu: Neighbors local endo (p2),
}
787 \PY{c+c1
}{\PYZsh{} mauve: Neighbors local none (p3), vert: moyenne (p4),
}
788 \PY{c+c1
}{\PYZsh{} rouge: persistence (p5)
}
790 \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
}
791 \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{}}
792 \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{}}
796 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_34_0.png
}
798 { \hspace*
{\fill} \\
}
800 Dans ce cas plus favorable les intensité des erreurs absolues ont
801 clairement diminué : elles restent souvent en dessous de
5. En revanche
802 le MAPE moyen reste au-delà de
20\%, et même souvent plus de
30\%. Comme
803 dans le cas de l'épandage on constate une croissance globale de la
804 courbe journalière d'erreur absolue moyenne (en haut à gauche) ; ceci
805 peut être dû au fait que l'on ajuste le niveau du jour à prédire en le
806 recollant sur la dernière valeur observée.
808 \begin{Verbatim
}[commandchars=\\\
{\
}]
809 {\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
}{)
}
810 \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
}{)
}
812 \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
}{)
}
813 \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
}{)
}
815 \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
}{)
}
816 \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
}{)
}
818 \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
}{)
}
819 \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
}{)
}
821 \PY{c+c1
}{\PYZsh{} Bleu: prévue, noir: réalisée
}
825 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_36_0.png
}
827 { \hspace*
{\fill} \\
}
830 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_36_1.png
}
832 { \hspace*
{\fill} \\
}
835 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_36_2.png
}
837 { \hspace*
{\fill} \\
}
839 La forme est raisonnablement retrouvée pour les méthodes "locales",
840 l'autre version lissant trop les prédictions. Le biais reste cependant
841 important, surtout en fin de journée sur le jour "difficile".
843 \begin{Verbatim
}[commandchars=\\\
{\
}]
844 {\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
}{)
}
845 \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
}{)
}
846 \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
}{)
}
847 \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
}{)
}
848 \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
}{)
}
850 \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
}{)
}
851 \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
}{)
}
852 \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
}{)
}
853 \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
}{)
}
857 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_38_0.png
}
859 { \hspace*
{\fill} \\
}
862 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_38_1.png
}
864 { \hspace*
{\fill} \\
}
866 Les graphes de filaments ont encore la même allure, avec une assez
867 grande variabilité observée. Cette observation est cependant trompeuse,
868 comme l'indique plus bas le graphe de variabilité relative.
870 \begin{Verbatim
}[commandchars=\\\
{\
}]
871 {\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
}{)
}
872 \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
}{)
}
873 \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
}{)
}
875 \PY{c+c1
}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)
}
879 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_40_0.png
}
881 { \hspace*
{\fill} \\
}
883 On peut réappliquer les mêmes remarques qu'auparavant sur les boxplots
884 fonctionnels : lendemains de voisins atypiques, courbe à prévoir
885 elle-même légèrement "hors norme".
887 \begin{Verbatim
}[commandchars=\\\
{\
}]
888 {\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
}{)
}
889 \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
}{)
}
890 \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
}{)
}
892 \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
}{)
}
893 \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
}{)
}
895 \PY{c+c1
}{\PYZsh{} Variabilité globale en rouge ; sur les
60 voisins (+ lendemains) en noir
}
899 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_42_0.png
}
901 { \hspace*
{\fill} \\
}
904 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_42_1.png
}
906 { \hspace*
{\fill} \\
}
908 Cette fois la situation idéale est observée : la variabilité globale est
909 nettement au-dessus de la variabilité locale. Bien que cela ne suffise
910 pas à obtenir de bonnes prédictions de forme, on constate au moins
911 l'amélioration dans la prédiction du niveau.
913 \begin{Verbatim
}[commandchars=\\\
{\
}]
914 {\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
}{)
}
915 \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
}{)
}
916 \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
}{)
}
918 \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
}{)
}
919 \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
}{)
}
921 \PY{c+c1
}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite
}
925 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_44_0.png
}
927 { \hspace*
{\fill} \\
}
930 \adjustimage{max size=
{0.9\linewidth}{0.9\paperheight}}{output_44_1.png
}
932 { \hspace*
{\fill} \\
}
934 Concernant les poids en revanche, deux cas a priori mauvais se cumulent
935 : * les poids dans le cas "non local" ne sont pas assez concentrés
936 autour de
0, menant à un lissage trop fort \(-\) comme observé sur les
937 graphes des courbes réalisées/prévues ; * les poids dans le cas "local"
938 sont trop semblables (à cause de la trop grande fenêtre optimisée par
939 validation croisée, cf. ci-dessous), résultant encore en une moyenne
940 simple \(-\) mais sur moins de jours, plus proches du jour courant.
942 \begin{Verbatim
}[commandchars=\\\
{\
}]
943 {\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
}
944 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
945 \PY{n
}{p1
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
947 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}np
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
948 \PY{n
}{p2
}\PY{err
}{\PYZdl{}}\PY{n
}{getParams
}\PY{p
}{(
}\PY{n
}{i
\PYZus{}p
}\PY{p
}{)
}\PY{err
}{\PYZdl{}}\PY{n
}{window
}
952 \item 0.205055690975915
953 \item 0.703482647754766
958 \item 1.1038650998802
959 \item 0.885155748316133
971 Nos algorithmes à voisins ne sont pas adaptés à ce jeu de données où la
972 forme varie considérablement d'un jour à l'autre. Plus généralement
973 cette décorrélation de forme rend ardue la tâche de prévision pour toute
974 autre méthode \(-\) du moins, nous ne savons pas comment procéder pour
975 parvenir à une bonne précision.
977 Toutefois, un espoir reste permis par exemple en aggréger les courbes
978 spatialement (sur plusieurs stations situées dans la même agglomération
979 ou dans une même zone).
982 % Add a bibliography block to the postdoc