| 1 | |
| 2 | % Default to the notebook output style |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | % Inherit from the specified cell style. |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | \documentclass[11pt]{article} |
| 14 | |
| 15 | |
| 16 | |
| 17 | \usepackage[T1]{fontenc} |
| 18 | % Nicer default font (+ math font) than Computer Modern for most use cases |
| 19 | \usepackage{mathpazo} |
| 20 | |
| 21 | % Basic figure setup, for now with no caption control since it's done |
| 22 | % automatically by Pandoc (which extracts ![](path) syntax from Markdown). |
| 23 | \usepackage{graphicx} |
| 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. |
| 27 | \makeatletter |
| 28 | \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth |
| 29 | \else\Gin@nat@width\fi} |
| 30 | \makeatother |
| 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). |
| 37 | \usepackage{caption} |
| 38 | \DeclareCaptionLabelFormat{nolabel}{} |
| 39 | \captionsetup{labelformat=nolabel} |
| 40 | |
| 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: |
| 49 | \AtBeginDocument{% |
| 50 | \def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code |
| 51 | } |
| 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.) |
| 62 | \usepackage{hyperref} |
| 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 |
| 68 | |
| 69 | |
| 70 | |
| 71 | |
| 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} |
| 76 | |
| 77 | % ANSI colors |
| 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} |
| 94 | |
| 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}} |
| 116 | |
| 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}}}}} |
| 135 | |
| 136 | |
| 137 | % Define a nice break command that doesn't care if a line doesn't already |
| 138 | % exist. |
| 139 | \def\br{\hspace*{\fill} \\* } |
| 140 | % Math Jax compatability definitions |
| 141 | \def\gt{>} |
| 142 | \def\lt{<} |
| 143 | % Document parameters |
| 144 | \title{report\_P7\_H17} |
| 145 | |
| 146 | |
| 147 | |
| 148 | |
| 149 | % Pygments definitions |
| 150 | |
| 151 | \makeatletter |
| 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}} |
| 161 | |
| 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}}} |
| 229 | |
| 230 | \def\PYZbs{\char`\\} |
| 231 | \def\PYZus{\char`\_} |
| 232 | \def\PYZob{\char`\{} |
| 233 | \def\PYZcb{\char`\}} |
| 234 | \def\PYZca{\char`\^} |
| 235 | \def\PYZam{\char`\&} |
| 236 | \def\PYZlt{\char`\<} |
| 237 | \def\PYZgt{\char`\>} |
| 238 | \def\PYZsh{\char`\#} |
| 239 | \def\PYZpc{\char`\%} |
| 240 | \def\PYZdl{\char`\$} |
| 241 | \def\PYZhy{\char`\-} |
| 242 | \def\PYZsq{\char`\'} |
| 243 | \def\PYZdq{\char`\"} |
| 244 | \def\PYZti{\char`\~} |
| 245 | % for compatibility with earlier versions |
| 246 | \def\PYZat{@} |
| 247 | \def\PYZlb{[} |
| 248 | \def\PYZrb{]} |
| 249 | \makeatother |
| 250 | |
| 251 | |
| 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} |
| 255 | |
| 256 | |
| 257 | |
| 258 | |
| 259 | % Prevent overflowing lines due to hard-to-break entities |
| 260 | \sloppy |
| 261 | % Setup hyperref package |
| 262 | \hypersetup{ |
| 263 | breaklinks=true, % so long urls are correctly broken across lines |
| 264 | colorlinks=true, |
| 265 | urlcolor=urlcolor, |
| 266 | linkcolor=linkcolor, |
| 267 | citecolor=citecolor, |
| 268 | } |
| 269 | % Slightly bigger margins than the latex defaults |
| 270 | |
| 271 | \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} |
| 272 | |
| 273 | |
| 274 | \graphicspath{{./figs/}} |
| 275 | |
| 276 | \begin{document} |
| 277 | |
| 278 | |
| 279 | \maketitle |
| 280 | |
| 281 | |
| 282 | |
| 283 | |
| 284 | \subsection*{Introduction} |
| 285 | |
| 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 |
| 294 | "same\_day"). |
| 295 | |
| 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. |
| 304 | |
| 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. |
| 315 | |
| 316 | \begin{Verbatim}[commandchars=\\\{\}] |
| 317 | {\color{incolor}In [{\color{incolor}1}]:} \PY{n}{library}\PY{p}{(}\PY{n}{talweg}\PY{p}{)} |
| 318 | |
| 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)} |
| 321 | |
| 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}{)} |
| 328 | |
| 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}{)} |
| 332 | \end{Verbatim} |
| 333 | |
| 334 | \subsection*{Pollution par chauffage} |
| 335 | |
| 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}{)} |
| 346 | \end{Verbatim} |
| 347 | |
| 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}{)} |
| 356 | |
| 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)} |
| 360 | |
| 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{}} |
| 364 | \end{Verbatim} |
| 365 | |
| 366 | \begin{center} |
| 367 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_4_0.png} |
| 368 | \end{center} |
| 369 | { \hspace*{\fill} \\} |
| 370 | |
| 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). |
| 378 | |
| 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}{)} |
| 382 | |
| 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}{)} |
| 385 | |
| 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}{)} |
| 388 | |
| 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}{)} |
| 391 | |
| 392 | \PY{c+c1}{\PYZsh{} Bleu: prévue, noir: réalisée} |
| 393 | \end{Verbatim} |
| 394 | |
| 395 | \begin{center} |
| 396 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_6_0.png} |
| 397 | \end{center} |
| 398 | { \hspace*{\fill} \\} |
| 399 | |
| 400 | \begin{center} |
| 401 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_6_1.png} |
| 402 | \end{center} |
| 403 | { \hspace*{\fill} \\} |
| 404 | |
| 405 | \begin{center} |
| 406 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_6_2.png} |
| 407 | \end{center} |
| 408 | { \hspace*{\fill} \\} |
| 409 | |
| 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. |
| 418 | |
| 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}{)} |
| 425 | |
| 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}{)} |
| 430 | \end{Verbatim} |
| 431 | |
| 432 | \begin{center} |
| 433 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_8_0.png} |
| 434 | \end{center} |
| 435 | { \hspace*{\fill} \\} |
| 436 | |
| 437 | \begin{center} |
| 438 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_8_1.png} |
| 439 | \end{center} |
| 440 | { \hspace*{\fill} \\} |
| 441 | |
| 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.} |
| 450 | |
| 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}{)} |
| 455 | |
| 456 | \PY{c+c1}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)} |
| 457 | \end{Verbatim} |
| 458 | |
| 459 | \begin{center} |
| 460 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_10_0.png} |
| 461 | \end{center} |
| 462 | { \hspace*{\fill} \\} |
| 463 | |
| 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. |
| 471 | |
| 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}{)} |
| 476 | |
| 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}{)} |
| 479 | |
| 480 | \PY{c+c1}{\PYZsh{} Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir} |
| 481 | \end{Verbatim} |
| 482 | |
| 483 | \begin{center} |
| 484 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_12_0.png} |
| 485 | \end{center} |
| 486 | { \hspace*{\fill} \\} |
| 487 | |
| 488 | \begin{center} |
| 489 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_12_1.png} |
| 490 | \end{center} |
| 491 | { \hspace*{\fill} \\} |
| 492 | |
| 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. |
| 501 | |
| 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}{)} |
| 506 | |
| 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}{)} |
| 509 | |
| 510 | \PY{c+c1}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite} |
| 511 | \end{Verbatim} |
| 512 | |
| 513 | \begin{center} |
| 514 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_14_0.png} |
| 515 | \end{center} |
| 516 | { \hspace*{\fill} \\} |
| 517 | |
| 518 | \begin{center} |
| 519 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_14_1.png} |
| 520 | \end{center} |
| 521 | { \hspace*{\fill} \\} |
| 522 | |
| 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 |
| 526 | simple moyenne. |
| 527 | |
| 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} |
| 532 | |
| 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} |
| 535 | \end{Verbatim} |
| 536 | |
| 537 | \begin{enumerate*} |
| 538 | \item 0.168824188864717 |
| 539 | \item 0.336969608767438 |
| 540 | \end{enumerate*} |
| 541 | |
| 542 | |
| 543 | \begin{enumerate*} |
| 544 | \item 0.18004595760919 |
| 545 | \item 0.353963007643311 |
| 546 | \end{enumerate*} |
| 547 | |
| 548 | |
| 549 | 1.16620655388085 |
| 550 | |
| 551 | |
| 552 | 1.18148881881259 |
| 553 | |
| 554 | |
| 555 | \subsection*{Pollution par épandage} |
| 556 | |
| 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}{)} |
| 567 | \end{Verbatim} |
| 568 | |
| 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}{)} |
| 577 | |
| 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)} |
| 581 | |
| 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{}} |
| 585 | \end{Verbatim} |
| 586 | |
| 587 | \begin{center} |
| 588 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_19_0.png} |
| 589 | \end{center} |
| 590 | { \hspace*{\fill} \\} |
| 591 | |
| 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). |
| 596 | |
| 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}{)} |
| 600 | |
| 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}{)} |
| 603 | |
| 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}{)} |
| 606 | |
| 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}{)} |
| 609 | |
| 610 | \PY{c+c1}{\PYZsh{} Bleu: prévue, noir: réalisée} |
| 611 | \end{Verbatim} |
| 612 | |
| 613 | \begin{center} |
| 614 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_21_0.png} |
| 615 | \end{center} |
| 616 | { \hspace*{\fill} \\} |
| 617 | |
| 618 | \begin{center} |
| 619 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_21_1.png} |
| 620 | \end{center} |
| 621 | { \hspace*{\fill} \\} |
| 622 | |
| 623 | \begin{center} |
| 624 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_21_2.png} |
| 625 | \end{center} |
| 626 | { \hspace*{\fill} \\} |
| 627 | |
| 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. |
| 634 | |
| 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}{)} |
| 641 | |
| 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}{)} |
| 646 | \end{Verbatim} |
| 647 | |
| 648 | \begin{center} |
| 649 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_23_0.png} |
| 650 | \end{center} |
| 651 | { \hspace*{\fill} \\} |
| 652 | |
| 653 | \begin{center} |
| 654 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_23_1.png} |
| 655 | \end{center} |
| 656 | { \hspace*{\fill} \\} |
| 657 | |
| 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). |
| 660 | |
| 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}{)} |
| 665 | |
| 666 | \PY{c+c1}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)} |
| 667 | \end{Verbatim} |
| 668 | |
| 669 | \begin{center} |
| 670 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_25_0.png} |
| 671 | \end{center} |
| 672 | { \hspace*{\fill} \\} |
| 673 | |
| 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. |
| 680 | |
| 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}{)} |
| 685 | |
| 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}{)} |
| 688 | |
| 689 | \PY{c+c1}{\PYZsh{} Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir} |
| 690 | \end{Verbatim} |
| 691 | |
| 692 | \begin{center} |
| 693 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_27_0.png} |
| 694 | \end{center} |
| 695 | { \hspace*{\fill} \\} |
| 696 | |
| 697 | \begin{center} |
| 698 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_27_1.png} |
| 699 | \end{center} |
| 700 | { \hspace*{\fill} \\} |
| 701 | |
| 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. |
| 706 | |
| 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}{)} |
| 711 | |
| 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}{)} |
| 714 | |
| 715 | \PY{c+c1}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite} |
| 716 | \end{Verbatim} |
| 717 | |
| 718 | \begin{center} |
| 719 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_29_0.png} |
| 720 | \end{center} |
| 721 | { \hspace*{\fill} \\} |
| 722 | |
| 723 | \begin{center} |
| 724 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_29_1.png} |
| 725 | \end{center} |
| 726 | { \hspace*{\fill} \\} |
| 727 | |
| 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. |
| 735 | |
| 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} |
| 740 | |
| 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} |
| 743 | \end{Verbatim} |
| 744 | |
| 745 | \begin{enumerate*} |
| 746 | \item 0.206604806619633 |
| 747 | \item 0.661854053860987 |
| 748 | \end{enumerate*} |
| 749 | |
| 750 | |
| 751 | \begin{enumerate*} |
| 752 | \item 0.367945958636072 |
| 753 | \item 0.244429852740092 |
| 754 | \end{enumerate*} |
| 755 | |
| 756 | |
| 757 | 6.99993248587025 |
| 758 | |
| 759 | |
| 760 | 1.24825506305085 |
| 761 | |
| 762 | |
| 763 | \subsection*{Semaine non polluée} |
| 764 | |
| 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}{)} |
| 775 | \end{Verbatim} |
| 776 | |
| 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}{)} |
| 785 | |
| 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)} |
| 789 | |
| 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{}} |
| 793 | \end{Verbatim} |
| 794 | |
| 795 | \begin{center} |
| 796 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_34_0.png} |
| 797 | \end{center} |
| 798 | { \hspace*{\fill} \\} |
| 799 | |
| 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. |
| 807 | |
| 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}{)} |
| 811 | |
| 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}{)} |
| 814 | |
| 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}{)} |
| 817 | |
| 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}{)} |
| 820 | |
| 821 | \PY{c+c1}{\PYZsh{} Bleu: prévue, noir: réalisée} |
| 822 | \end{Verbatim} |
| 823 | |
| 824 | \begin{center} |
| 825 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_36_0.png} |
| 826 | \end{center} |
| 827 | { \hspace*{\fill} \\} |
| 828 | |
| 829 | \begin{center} |
| 830 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_36_1.png} |
| 831 | \end{center} |
| 832 | { \hspace*{\fill} \\} |
| 833 | |
| 834 | \begin{center} |
| 835 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_36_2.png} |
| 836 | \end{center} |
| 837 | { \hspace*{\fill} \\} |
| 838 | |
| 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". |
| 842 | |
| 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}{)} |
| 849 | |
| 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}{)} |
| 854 | \end{Verbatim} |
| 855 | |
| 856 | \begin{center} |
| 857 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_38_0.png} |
| 858 | \end{center} |
| 859 | { \hspace*{\fill} \\} |
| 860 | |
| 861 | \begin{center} |
| 862 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_38_1.png} |
| 863 | \end{center} |
| 864 | { \hspace*{\fill} \\} |
| 865 | |
| 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. |
| 869 | |
| 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}{)} |
| 874 | |
| 875 | \PY{c+c1}{\PYZsh{} En pointillés la courbe du jour courant + lendemain (à prédire)} |
| 876 | \end{Verbatim} |
| 877 | |
| 878 | \begin{center} |
| 879 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_40_0.png} |
| 880 | \end{center} |
| 881 | { \hspace*{\fill} \\} |
| 882 | |
| 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". |
| 886 | |
| 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}{)} |
| 891 | |
| 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}{)} |
| 894 | |
| 895 | \PY{c+c1}{\PYZsh{} Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir} |
| 896 | \end{Verbatim} |
| 897 | |
| 898 | \begin{center} |
| 899 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_42_0.png} |
| 900 | \end{center} |
| 901 | { \hspace*{\fill} \\} |
| 902 | |
| 903 | \begin{center} |
| 904 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_42_1.png} |
| 905 | \end{center} |
| 906 | { \hspace*{\fill} \\} |
| 907 | |
| 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. |
| 912 | |
| 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}{)} |
| 917 | |
| 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}{)} |
| 920 | |
| 921 | \PY{c+c1}{\PYZsh{} \PYZhy{} pollué à gauche, + pollué à droite} |
| 922 | \end{Verbatim} |
| 923 | |
| 924 | \begin{center} |
| 925 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_44_0.png} |
| 926 | \end{center} |
| 927 | { \hspace*{\fill} \\} |
| 928 | |
| 929 | \begin{center} |
| 930 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_44_1.png} |
| 931 | \end{center} |
| 932 | { \hspace*{\fill} \\} |
| 933 | |
| 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. |
| 941 | |
| 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} |
| 946 | |
| 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} |
| 949 | \end{Verbatim} |
| 950 | |
| 951 | \begin{enumerate*} |
| 952 | \item 0.205055690975915 |
| 953 | \item 0.703482647754766 |
| 954 | \end{enumerate*} |
| 955 | |
| 956 | |
| 957 | \begin{enumerate*} |
| 958 | \item 1.1038650998802 |
| 959 | \item 0.885155748316133 |
| 960 | \end{enumerate*} |
| 961 | |
| 962 | |
| 963 | 3.64336124381868 |
| 964 | |
| 965 | |
| 966 | 6.99994501761361 |
| 967 | |
| 968 | |
| 969 | \subsection*{Bilan} |
| 970 | |
| 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. |
| 976 | |
| 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). |
| 980 | |
| 981 | |
| 982 | % Add a bibliography block to the postdoc |
| 983 | |
| 984 | |
| 985 | |
| 986 | \end{document} |