refactor reports.gj, prepare also 13h report
[talweg.git] / reports / PackageR.gj
diff --git a/reports/PackageR.gj b/reports/PackageR.gj
new file mode 100644 (file)
index 0000000..d62dc36
--- /dev/null
@@ -0,0 +1,109 @@
+-----
+# Package R "talweg"
+
+Le package $-$ Time-series sAmpLes forecasted With ExoGenous variables $-$ contient le
+code permettant de lancer les expériences numériques décrites dans le chapitre suivant.
+Les fonctions principales sont respectivement
+
+ * **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 *getSerie(i)* et *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é.
+ * **computeForecast()** pour calculer des prédictions sur une certaine plage temporelle
+contenue dans *data <- getData(...)*
+ * **computeError()** pour évaluer les erreurs commises par différentes méthodes.
+
+Le package contient en outre diverses fonctions graphiques *plotXXX()*, utilisées dans la
+partie suivante.
+-----r
+# Chargement de la librairie (après compilation, "R CMD INSTALL .")
+library(talweg)
+
+# Acquisition des données (depuis les fichiers CSV)
+ts_data <- read.csv(system.file("extdata","pm10_mesures_H_loc.csv",
+       package="talweg"))
+exo_data <- read.csv(system.file("extdata","meteo_extra_noNAs.csv",
+       package="talweg"))
+data <- getData(ts_data, exo_data, input_tz="GMT",
+       date_format="%d/%m/%Y %H:%M", working_tz="GMT",
+       predict_at=7, limit=120)
+# Plus de détails à la section 1 ci-après.
+
+# Prédiction de 10 courbes (jours 102 à 111)
+pred <- computeForecast(data, 101:110, "Persistence", "Zero", memory=50,
+       horizon=12, ncores=1)
+# Plus de détails à la section 2 ci-après.
+
+# Calcul des erreurs (sur un horizon arbitraire <= horizon de prédiction)
+err <- computeError(data, pred, horizon=6)
+# Plus de détails à la section 3 ci-après.
+
+# Puis voir ?plotError et les autres plot dans le paragraphe 'seealso'
+-----
+${"##"} getData()
+
+Les arguments de cette fonction sont, dans l'ordre :
+
+ 1. **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. **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. **input_tz** : zone horaire pour ts_data (défaut : "GMT").
+ 4. **date_format** : format des heures dans ts_data (défaut : "%d/%m/%Y %H:%M", format
+du fichier transmis par Michel).
+ 5. **working_tz** : zone horaire dans laquelle on souhaite travailler avec les données
+(défaut : "GMT").
+ 6. **predict_at** : heure à laquelle s'effectue la prévision $-$ et donc dernière heure
+d'un bloc de 24h, relativement à working_tz. data`$`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.
+-----r
+print(data)
+#?Data
+-----
+${"##"} computeForecast()
+
+Les arguments de cette fonction sont, dans l'ordre :
+
+ 1. **data** : le jeu de données renvoyé par getData()
+ 2. **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. **forecaster** : le nom du prédicteur principal à utiliser ; voir ?computeForecast
+ 4. **pjump** : le nom du prédicteur de saut d'une série à l'autre ; voir
+?computeForecast
+ 5. **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. **horizon** : le nombre d'heures à prédire ; par défaut "data`$`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. **ncores** : le nombre de processus parallèles (utiliser 1 pour une exécution
+séquentielle)
+-----r
+print(pred)
+#?computeForecast
+-----
+${"##"} computeError()
+
+Les arguments de cette fonction sont, dans l'ordre :
+
+ 1. **data** : le jeu de données renvoyé par getData()
+ 2. **pred** : les prédictions renvoyées par computeForecast()
+ 3. **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`$`getStdHorizon()")
+-----r
+summary(err)
+summary(err$abs)
+summary(err$MAPE)
+-----
+${"##"} Graphiques
+
+Voir ?plotError : les autres fonctions graphiques sont dans la section 'seealso' :
+
+    ‘plotCurves’, ‘plotPredReal’, ‘plotSimils’, ‘plotFbox’,
+    ‘computeFilaments’, ‘plotFilamentsBox’, ‘plotRelVar’
+
+?plotXXX, etc.