'update'
authorBenjamin Auder <benjamin.auder@somewhere>
Fri, 14 Apr 2017 10:23:33 +0000 (12:23 +0200)
committerBenjamin Auder <benjamin.auder@somewhere>
Fri, 14 Apr 2017 10:23:33 +0000 (12:23 +0200)
12 files changed:
.gitignore
AirNormand.zip [new file with mode: 0644]
Untitled.tex [new file with mode: 0644]
pkg/R/Data.R
pkg/R/F_Average.R
pkg/R/F_Neighbors.R
pkg/R/F_Persistence.R
pkg/R/F_Zero.R
pkg/R/Forecast.R
pkg/R/Forecaster.R
pkg/R/utils.R
reports/rapport_final/report_P7_H17.tex

index 92a17ad..7b5eb35 100644 (file)
@@ -30,6 +30,7 @@ data/*.csv
 #misc
 *.png
 #*.tex
+/AirNormand/
 
 #.gitattributes/.gitfat files are generated by initialize.sh
 .gitattributes
diff --git a/AirNormand.zip b/AirNormand.zip
new file mode 100644 (file)
index 0000000..99fb2d0
--- /dev/null
@@ -0,0 +1 @@
+#$# git-fat cf4cf6c03e09a9aa2374a7250d21ce732c923e1e             49845703
diff --git a/Untitled.tex b/Untitled.tex
new file mode 100644 (file)
index 0000000..fe2c0eb
--- /dev/null
@@ -0,0 +1,468 @@
+
+% Default to the notebook output style
+
+    
+
+
+% Inherit from the specified cell style.
+
+
+
+
+    
+\documentclass[11pt]{article}
+
+    
+    
+    \usepackage[T1]{fontenc}
+    % Nicer default font (+ math font) than Computer Modern for most use cases
+    \usepackage{mathpazo}
+
+    % Basic figure setup, for now with no caption control since it's done
+    % automatically by Pandoc (which extracts ![](path) syntax from Markdown).
+    \usepackage{graphicx}
+    % We will generate all images so they have a width \maxwidth. This means
+    % that they will get their normal width if they fit onto the page, but
+    % are scaled down if they would overflow the margins.
+    \makeatletter
+    \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth
+    \else\Gin@nat@width\fi}
+    \makeatother
+    \let\Oldincludegraphics\includegraphics
+    % Set max figure width to be 80% of text width, for now hardcoded.
+    \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=.8\maxwidth]{#1}}
+    % Ensure that by default, figures have no caption (until we provide a
+    % proper Figure object with a Caption API and a way to capture that
+    % in the conversion process - todo).
+    \usepackage{caption}
+    \DeclareCaptionLabelFormat{nolabel}{}
+    \captionsetup{labelformat=nolabel}
+
+    \usepackage{adjustbox} % Used to constrain images to a maximum size 
+    \usepackage{xcolor} % Allow colors to be defined
+    \usepackage{enumerate} % Needed for markdown enumerations to work
+    \usepackage{geometry} % Used to adjust the document margins
+    \usepackage{amsmath} % Equations
+    \usepackage{amssymb} % Equations
+    \usepackage{textcomp} % defines textquotesingle
+    % Hack from http://tex.stackexchange.com/a/47451/13684:
+    \AtBeginDocument{%
+        \def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code
+    }
+    \usepackage{upquote} % Upright quotes for verbatim code
+    \usepackage{eurosym} % defines \euro
+    \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support
+    \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document
+    \usepackage{fancyvrb} % verbatim replacement that allows latex
+    \usepackage{grffile} % extends the file name processing of package graphics 
+                         % to support a larger range 
+    % The hyperref package gives us a pdf with properly built
+    % internal navigation ('pdf bookmarks' for the table of contents,
+    % internal cross-reference links, web links for URLs, etc.)
+    \usepackage{hyperref}
+    \usepackage{longtable} % longtable support required by pandoc >1.10
+    \usepackage{booktabs}  % table support for pandoc > 1.12.2
+    \usepackage[inline]{enumitem} % IRkernel/repr support (it uses the enumerate* environment)
+    \usepackage[normalem]{ulem} % ulem is needed to support strikethroughs (\sout)
+                                % normalem makes italics be italics, not underlines
+    
+
+    
+    
+    % Colors for the hyperref package
+    \definecolor{urlcolor}{rgb}{0,.145,.698}
+    \definecolor{linkcolor}{rgb}{.71,0.21,0.01}
+    \definecolor{citecolor}{rgb}{.12,.54,.11}
+
+    % ANSI colors
+    \definecolor{ansi-black}{HTML}{3E424D}
+    \definecolor{ansi-black-intense}{HTML}{282C36}
+    \definecolor{ansi-red}{HTML}{E75C58}
+    \definecolor{ansi-red-intense}{HTML}{B22B31}
+    \definecolor{ansi-green}{HTML}{00A250}
+    \definecolor{ansi-green-intense}{HTML}{007427}
+    \definecolor{ansi-yellow}{HTML}{DDB62B}
+    \definecolor{ansi-yellow-intense}{HTML}{B27D12}
+    \definecolor{ansi-blue}{HTML}{208FFB}
+    \definecolor{ansi-blue-intense}{HTML}{0065CA}
+    \definecolor{ansi-magenta}{HTML}{D160C4}
+    \definecolor{ansi-magenta-intense}{HTML}{A03196}
+    \definecolor{ansi-cyan}{HTML}{60C6C8}
+    \definecolor{ansi-cyan-intense}{HTML}{258F8F}
+    \definecolor{ansi-white}{HTML}{C5C1B4}
+    \definecolor{ansi-white-intense}{HTML}{A1A6B2}
+
+    % commands and environments needed by pandoc snippets
+    % extracted from the output of `pandoc -s`
+    \providecommand{\tightlist}{%
+      \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
+    \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
+    % Add ',fontsize=\small' for more characters per line
+    \newenvironment{Shaded}{}{}
+    \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}}
+    \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}}
+    \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
+    \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
+    \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
+    \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
+    \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
+    \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}}
+    \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}}
+    \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
+    \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}}
+    \newcommand{\RegionMarkerTok}[1]{{#1}}
+    \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
+    \newcommand{\NormalTok}[1]{{#1}}
+    
+    % Additional commands for more recent versions of Pandoc
+    \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{{#1}}}
+    \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
+    \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
+    \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{{#1}}}
+    \newcommand{\ImportTok}[1]{{#1}}
+    \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{{#1}}}}
+    \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
+    \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
+    \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{{#1}}}
+    \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}}
+    \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{{#1}}}
+    \newcommand{\BuiltInTok}[1]{{#1}}
+    \newcommand{\ExtensionTok}[1]{{#1}}
+    \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{{#1}}}
+    \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{{#1}}}
+    \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
+    \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
+    
+    
+    % Define a nice break command that doesn't care if a line doesn't already
+    % exist.
+    \def\br{\hspace*{\fill} \\* }
+    % Math Jax compatability definitions
+    \def\gt{>}
+    \def\lt{<}
+    % Document parameters
+    \title{Untitled}
+    
+    
+    
+
+    % Pygments definitions
+    
+\makeatletter
+\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax%
+    \let\PY@ul=\relax \let\PY@tc=\relax%
+    \let\PY@bc=\relax \let\PY@ff=\relax}
+\def\PY@tok#1{\csname PY@tok@#1\endcsname}
+\def\PY@toks#1+{\ifx\relax#1\empty\else%
+    \PY@tok{#1}\expandafter\PY@toks\fi}
+\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{%
+    \PY@it{\PY@bf{\PY@ff{#1}}}}}}}
+\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}}
+
+\expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
+\expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
+\expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}}
+\expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}}
+\expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
+\expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
+\expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
+\expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
+\expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
+\expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}}
+\expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
+\expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}}
+\expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}}
+\expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}}
+\expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}}
+\expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
+\expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}}
+\expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}}
+\expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}}
+\expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
+\expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
+\expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
+\expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
+\expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
+\expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
+\expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
+\expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit}
+\expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf}
+\expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
+\expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}}
+\expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
+\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}}}
+\expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
+\expandafter\def\csname PY@tok@fm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
+\expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
+\expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
+\expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
+\expandafter\def\csname PY@tok@vm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
+\expandafter\def\csname PY@tok@sa\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@dl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
+\expandafter\def\csname PY@tok@mb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
+\expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
+\expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
+\expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
+\expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
+\expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
+\expandafter\def\csname PY@tok@ch\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
+\expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
+\expandafter\def\csname PY@tok@cpf\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
+\expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
+\expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
+
+\def\PYZbs{\char`\\}
+\def\PYZus{\char`\_}
+\def\PYZob{\char`\{}
+\def\PYZcb{\char`\}}
+\def\PYZca{\char`\^}
+\def\PYZam{\char`\&}
+\def\PYZlt{\char`\<}
+\def\PYZgt{\char`\>}
+\def\PYZsh{\char`\#}
+\def\PYZpc{\char`\%}
+\def\PYZdl{\char`\$}
+\def\PYZhy{\char`\-}
+\def\PYZsq{\char`\'}
+\def\PYZdq{\char`\"}
+\def\PYZti{\char`\~}
+% for compatibility with earlier versions
+\def\PYZat{@}
+\def\PYZlb{[}
+\def\PYZrb{]}
+\makeatother
+
+
+    % Exact colors from NB
+    \definecolor{incolor}{rgb}{0.0, 0.0, 0.5}
+    \definecolor{outcolor}{rgb}{0.545, 0.0, 0.0}
+
+
+
+    
+    % Prevent overflowing lines due to hard-to-break entities
+    \sloppy 
+    % Setup hyperref package
+    \hypersetup{
+      breaklinks=true,  % so long urls are correctly broken across lines
+      colorlinks=true,
+      urlcolor=urlcolor,
+      linkcolor=linkcolor,
+      citecolor=citecolor,
+      }
+    % Slightly bigger margins than the latex defaults
+    
+    \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}
+    
+    
+
+    \begin{document}
+    
+    
+    \maketitle
+    
+    
+
+    
+    \subsection{Package R "talweg"}\label{package-r-talweg}
+
+Le package \(-\) Time-series sAmpLes forecasted With ExoGenous variables
+\(-\) contient le code permettant de (re)lancer les expériences
+numériques décrites dans cette partie et la suivante. Les fonctions
+principales sont respectivement * \textbf{getData()} pour construire un
+objet R contenant les données à partir de fichiers CSV (extraits de
+bases de données). Le format choisi en R est une classe R6 (du package
+du même nom) exposant en particulier les méthodes \emph{getSerie(i)} et
+\emph{getExo(i)} qui renvoient respectivement la \(i^{eme}\) série de
+24h et les variables exogènes (mesurées) correspondantes. Voir ?Data
+pour plus d'information, une fois le package chargé. *
+\textbf{computeForecast()} pour calculer des prédictions sur une
+certaine plage temporelle contenue dans \emph{data \textless{}-
+getData(...)} * \textbf{computeError()} pour évaluer les erreurs
+commises par différentes méthodes.
+
+Le package contient en outre diverses fonctions graphiques
+\emph{plotXXX()}, utilisées dans la partie suivante.
+
+    \begin{Verbatim}[commandchars=\\\{\}]
+{\color{incolor}In [{\color{incolor}3}]:} \PY{c+c1}{\PYZsh{} Chargement de la librairie (après compilation, \PYZdq{}R CMD INSTALL .\PYZdq{})}
+        \PY{k+kn}{library}\PY{p}{(}talweg\PY{p}{)}
+        
+        \PY{c+c1}{\PYZsh{} Acquisition des données (depuis les fichiers CSV)}
+        ts\PYZus{}data \PY{o}{\PYZlt{}\PYZhy{}} read.csv\PY{p}{(}\PY{k+kp}{system.file}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{extdata\PYZdq{}}\PY{p}{,}\PY{l+s}{\PYZdq{}}\PY{l+s}{pm10\PYZus{}mesures\PYZus{}H\PYZus{}loc.csv\PYZdq{}}\PY{p}{,}package\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{talweg\PYZdq{}}\PY{p}{)}\PY{p}{)}
+        exo\PYZus{}data \PY{o}{\PYZlt{}\PYZhy{}} read.csv\PY{p}{(}\PY{k+kp}{system.file}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{extdata\PYZdq{}}\PY{p}{,}\PY{l+s}{\PYZdq{}}\PY{l+s}{meteo\PYZus{}extra\PYZus{}noNAs.csv\PYZdq{}}\PY{p}{,}package\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{talweg\PYZdq{}}\PY{p}{)}\PY{p}{)}
+        data \PY{o}{\PYZlt{}\PYZhy{}} getData\PY{p}{(}ts\PYZus{}data\PY{p}{,} exo\PYZus{}data\PY{p}{,} input\PYZus{}tz\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{GMT\PYZdq{}}\PY{p}{,} date\PYZus{}format\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{\PYZpc{}d/\PYZpc{}m/\PYZpc{}Y \PYZpc{}H:\PYZpc{}M\PYZdq{}}\PY{p}{,}
+            working\PYZus{}tz\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{GMT\PYZdq{}}\PY{p}{,} predict\PYZus{}at\PY{o}{=}\PY{l+m}{7}\PY{p}{,} limit\PY{o}{=}\PY{l+m}{120}\PY{p}{)}
+        \PY{c+c1}{\PYZsh{} Plus de détails à la section 1 ci\PYZhy{}après.}
+        
+        \PY{c+c1}{\PYZsh{} Prédiction de 10 courbes (jours 102 à 111)}
+        pred \PY{o}{\PYZlt{}\PYZhy{}} computeForecast\PY{p}{(}data\PY{p}{,} \PY{l+m}{101}\PY{o}{:}\PY{l+m}{110}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Persistence\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Zero\PYZdq{}}\PY{p}{,} memory\PY{o}{=}\PY{l+m}{50}\PY{p}{,} horizon\PY{o}{=}\PY{l+m}{12}\PY{p}{,} ncores\PY{o}{=}\PY{l+m}{1}\PY{p}{)}
+        \PY{c+c1}{\PYZsh{} Plus de détails à la section 2 ci\PYZhy{}après.}
+        
+        \PY{c+c1}{\PYZsh{} Calcul des erreurs (sur un horizon arbitraire \PYZlt{}= horizon de prédiction)}
+        err \PY{o}{\PYZlt{}\PYZhy{}} computeError\PY{p}{(}data\PY{p}{,} pred\PY{p}{,} horizon\PY{o}{=}\PY{l+m}{6}\PY{p}{)}
+        \PY{c+c1}{\PYZsh{} Plus de détails à la section 3 ci\PYZhy{}après.}
+        
+        \PY{c+c1}{\PYZsh{} Puis voir ?plotError et les autres plot dans le paragraphe \PYZsq{}seealso\PYZsq{}}
+\end{Verbatim}
+
+    \subsubsection{getData()}\label{getdata}
+
+Les arguments de cette fonction sont, dans l'ordre : 1.
+\textbf{ts\_data} : séries temporelles (fichier CSV avec entête ou
+data.frame) ; la première colonne contient les heures, la seconde les
+valeurs. 2. \textbf{exo\_data} : variables exogènes (fichier CSV avec
+entête ou data.frame) ; la première colonne contient les jours, les
+\(m\) suivantes les variables mesurées pour ce jour, et les \(m\)
+dernières les variables prédites pour ce même jour. Dans notre cas
+\(m=4\) : pression, température, gradient de température, vitesse du
+vent. 3. \textbf{input\_tz} : zone horaire pour ts\_data (défaut :
+"GMT"). 4. \textbf{date\_format} : format des heures dans ts\_data
+(défaut : "\%d/\%m/\%Y \%H:\%M", format du fichier transmis par Michel).
+5. \textbf{working\_tz} : zone horaire dans laquelle on souhaite
+travailler avec les données (défaut : "GMT"). 6. \textbf{predict\_at} :
+heure à laquelle s'effectue la prévision \(-\) et donc dernière heure
+d'un bloc de 24h, relativement à working\_tz. data\texttt{\$}getSerie(3)
+renvoit ainsi les 24 valeurs de 8h à 7h pour le \(3^{eme}\) bloc de 24h
+présent dans le jeu de données.
+
+    \begin{Verbatim}[commandchars=\\\{\}]
+{\color{incolor}In [{\color{incolor}11}]:} \PY{k+kp}{print}\PY{p}{(}data\PY{p}{)}
+         \PY{c+c1}{\PYZsh{}?Data}
+\end{Verbatim}
+
+    \begin{Verbatim}[commandchars=\\\{\}]
+<Data>
+  Public:
+    append: function (time, serie, exo, exo\_hat) 
+    clone: function (deep = FALSE) 
+    getCenteredSerie: function (index) 
+    getCenteredSeries: function (indices) 
+    getExo: function (index) 
+    getExoHat: function (index) 
+    getLevel: function (index) 
+    getSerie: function (index) 
+    getSeries: function (indices) 
+    getSize: function () 
+    getStdHorizon: function () 
+    getTime: function (index) 
+    removeFirst: function () 
+    removeLast: function () 
+  Private:
+    .data: list
+
+    \end{Verbatim}
+
+    \subsubsection{computeForecast()}\label{computeforecast}
+
+Les arguments de cette fonction sont, dans l'ordre : 1. \textbf{data} :
+le jeu de données renvoyé par getData() 2. \textbf{indices} : l'ensemble
+de jours dont on veut prévoir les "lendemains" (prochains blocs de 24h)
+; peut être donnée sous forme d'un vecteur de dates ou d'entiers
+(correspondants aux numéros des jours). 3. \textbf{forecaster} : le nom
+du prédicteur principal à utiliser ; voir ?computeForecast 4.
+\textbf{pjump} : le nom du prédicteur de saut d'une série à l'autre ;
+voir ?computeForecast 5. \textbf{memory} : le nombre de jours à prendre
+en compte dans le passé pour chaque prévision (par défaut : Inf,
+c'est-à-dire tout l'historique pris en compte). 6. \textbf{horizon} : le
+nombre d'heures à prédire ; par défaut "data\texttt{\$}getStdHorizon()",
+c'est-à-dire le nombre d'heures restantes à partir de l'instant de
+prévision + 1 jusqu'à minuit (17 pour predict\_at=7 par exemple). 7.
+\textbf{ncores} : le nombre de processus parallèles (utiliser 1 pour une
+exécution séquentielle)
+
+    \begin{Verbatim}[commandchars=\\\{\}]
+{\color{incolor}In [{\color{incolor}8}]:} \PY{k+kp}{print}\PY{p}{(}pred\PY{p}{)}
+        \PY{c+c1}{\PYZsh{}?computeForecast}
+\end{Verbatim}
+
+    \begin{Verbatim}[commandchars=\\\{\}]
+<Forecast>
+  Public:
+    append: function (forecast, params, index\_in\_data) 
+    clone: function (deep = FALSE) 
+    getDates: function () 
+    getForecast: function (index) 
+    getIndexInData: function (index) 
+    getParams: function (index) 
+    getSize: function () 
+    initialize: function (dates) 
+  Private:
+    .dates: 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332
+    .pred: list
+
+    \end{Verbatim}
+
+    \subsubsection{computeError()}\label{computeerror}
+
+Les arguments de cette fonction sont, dans l'ordre : 1. \textbf{data} :
+le jeu de données renvoyé par getData() 2. \textbf{pred} : les
+prédictions renvoyées par computeForecast() 3. \textbf{horizon} : le
+nombre d'heures à considérer pour le calcul de l'erreur ; doit être
+inférieur ou égal à l'horizon utilisé pour la prédiction (même valeur
+par défaut : "data\texttt{\$}getStdHorizon()")
+
+    \begin{Verbatim}[commandchars=\\\{\}]
+{\color{incolor}In [{\color{incolor}9}]:} \PY{k+kp}{summary}\PY{p}{(}err\PY{p}{)}
+        \PY{k+kp}{summary}\PY{p}{(}err\PY{o}{\PYZdl{}}\PY{k+kp}{abs}\PY{p}{)}
+        \PY{k+kp}{summary}\PY{p}{(}err\PY{o}{\PYZdl{}}MAPE\PY{p}{)}
+\end{Verbatim}
+
+    
+    \begin{verbatim}
+     Length Class  Mode
+abs  2      -none- list
+MAPE 2      -none- list
+    \end{verbatim}
+
+    
+    
+    \begin{verbatim}
+        Length Class  Mode   
+day      6     -none- numeric
+indices 10     -none- numeric
+    \end{verbatim}
+
+    
+    
+    \begin{verbatim}
+        Length Class  Mode   
+day      6     -none- numeric
+indices 10     -none- numeric
+    \end{verbatim}
+
+    
+    \subsubsection{Graphiques}\label{graphiques}
+
+Voir ?plotError : les autres fonctions graphiques sont dans la section
+'seealso' :
+
+\begin{verbatim}
+ ‘plotCurves’, ‘plotPredReal’, ‘plotSimils’, ‘plotFbox’,
+ ‘computeFilaments’, ‘plotFilamentsBox’, ‘plotRelVar’
+\end{verbatim}
+
+?plotXXX, etc.
+
+
+    % Add a bibliography block to the postdoc
+    
+    
+    
+    \end{document}
index 92ba2c1..3820d57 100644 (file)
@@ -9,6 +9,8 @@
 #' \code{getTime()} below. Each cell .data[[i]] is itself a list containing five slots,
 #' as described in the 'field' section.
 #'
+#' @usage data <- Data$new()
+#'
 #' @field .data[[i]] List of
 #' \itemize{
 #'   \item time: vector of times
index 8f81747..a1f29ad 100644 (file)
@@ -7,6 +7,8 @@
 #' averaged to provide a smooth prediction. This forecast will most of the time be wrong,
 #' but will also look plausible enough.
 #'
+#' @usage f <- AverageForecaster$new(pjump)
+#'
 #' @docType class
 #' @format R6 class, inherits Forecaster
 #' @aliases F_Average
index 32d5cff..51b5730 100644 (file)
@@ -28,6 +28,8 @@
 #'     obtain the final prediction.
 #' }
 #'
+#' @usage f <- NeighborsForecaster$new(pjump)
+#'
 #' @docType class
 #' @format R6 class, inherits Forecaster
 #' @aliases F_Neighbors
@@ -216,16 +218,16 @@ NeighborsForecaster = R6::R6Class("NeighborsForecaster",
        )
 )
 
-#' getConstrainedNeighbs
-#'
-#' Get indices of neighbors of similar pollution level (among same season + day type).
-#'
-#' @param today Index of current day
-#' @param data Object of class Data
-#' @param fdays Current set of "first days" (no-NA pairs)
-#' @param min_neighbs Minimum number of points in a neighborhood
-#' @param max_neighbs Maximum number of points in a neighborhood
-#'
+# getConstrainedNeighbs
+#
+# Get indices of neighbors of similar pollution level (among same season + day type).
+#
+# @param today Index of current day
+# @param data Object of class Data
+# @param fdays Current set of "first days" (no-NA pairs)
+# @param min_neighbs Minimum number of points in a neighborhood
+# @param max_neighbs Maximum number of points in a neighborhood
+#
 .getConstrainedNeighbs = function(today, data, fdays, min_neighbs=10, max_neighbs=12)
 {
        levelToday = data$getLevel(today)
@@ -252,13 +254,13 @@ NeighborsForecaster = R6::R6Class("NeighborsForecaster",
        fdays
 }
 
-#' compute similarities
-#'
-#' Apply the gaussian kernel on computed squared distances.
-#'
-#' @param distances2 Squared distances
-#' @param window Window parameter for the kernel
-#'
+# compute similarities
+#
+# Apply the gaussian kernel on computed squared distances.
+#
+# @param distances2 Squared distances
+# @param window Window parameter for the kernel
+#
 .computeSimils <- function(distances2, window)
 {
        sd_dist = sd(distances2)
index fa5f99f..3eefa5b 100644 (file)
@@ -8,6 +8,8 @@
 #' If the last similar day has missing values, the next one is searched, and so on until
 #' one full serie is found (if no one is found, NA is returned).
 #'
+#' @usage f <- PersistenceForecaster$new(pjump)
+#'
 #' @docType class
 #' @format R6 class, inherits Forecaster
 #' @aliases F_Persistence
index 2c9a7b7..dae43e8 100644 (file)
@@ -3,6 +3,8 @@
 #' Flat prediction: always forecast a serie of zeros.
 #' This serie is then adjusted using the ".pjump" function (see \code{Forecaster} class).
 #'
+#' @usage f <- ZeroForecaster$new(pjump)
+#'
 #' @docType class
 #' @format R6 class, inherits Forecaster
 #' @aliases F_Zero
index 6036daf..bb665bd 100644 (file)
@@ -9,6 +9,8 @@
 #' Each cell .pred[[i]] is itself a list containing three slots, as described in the
 #' 'field' section.
 #'
+#' @usage f <- Forecast$new(dates)
+#'
 #' @field .pred List with
 #' \itemize{
 #'   \item serie: the forecasted serie
index 2efa9ba..ce1bb35 100644 (file)
@@ -9,6 +9,8 @@
 #' serie, and then calls the "jump prediction" function -- see "field" section -- to
 #' adjust it based on the last observed values.
 #'
+#' @usage f <- Forecaster$new(pjump) #warning: predictShape() is unimplemented
+#'
 #' @field .params List of computed parameters (if applicable).
 #' @field .pjump Function: how to predict the jump at day interface? The arguments of
 #'   this function are -- in this order:
index 3f32868..b0d0ae0 100644 (file)
@@ -116,14 +116,14 @@ getSimilarDaysIndices = function(index, data, limit, same_season, days_in=NULL)
        return (day == day_ref)
 }
 
-#' getNoNA2
-#'
-#' Get indices in data of no-NA series followed by no-NA, within [first,last] range.
-#'
-#' @inheritParams dateIndexToInteger
-#' @param first First index (included)
-#' @param last Last index (included)
-#'
+# getNoNA2
+#
+# Get indices in data of no-NA series followed by no-NA, within [first,last] range.
+#
+# @inheritParams dateIndexToInteger
+# @param first First index (included)
+# @param last Last index (included)
+#
 .getNoNA2 = function(data, first, last)
 {
        (first:last)[ sapply(first:last, function(i)
index 012df04..5d0886b 100644 (file)
     \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}
     
     
+\graphicspath{{./figs/}}
 
     \begin{document}