revise package structure: always predict from 1am to horizon, dataset not cut at...
[talweg.git] / reports / PackageR.gj
1 -----
2 # Package R "talweg"
3
4 Le package $-$ Time-series sAmpLes forecasted With ExoGenous variables $-$ contient le
5 code permettant de lancer les expériences numériques décrites dans le chapitre suivant.
6 Les fonctions principales sont respectivement
7
8 * **getData()** pour construire un objet R contenant les données à partir de fichiers
9 CSV (extraits de bases de données). Le format choisi en R est une classe R6 (du package
10 du même nom) exposant en particulier les méthodes *getSerie(i)* et *getExo(i)* qui
11 renvoient respectivement la $i^{eme}$ série de 24h et les variables exogènes (mesurées)
12 correspondantes. Voir ?Data pour plus d'information, une fois le package chargé.
13 * **computeForecast()** pour calculer des prédictions sur une certaine plage temporelle
14 contenue dans *data <- getData(...)*
15 * **computeError()** pour évaluer les erreurs commises par différentes méthodes.
16
17 Le package contient en outre diverses fonctions graphiques *plotXXX()*, utilisées dans la
18 partie suivante.
19 -----r
20 # Chargement de la librairie (après compilation, "R CMD INSTALL .")
21 library(talweg)
22
23 # Acquisition des données (depuis les fichiers CSV)
24 ts_data <- read.csv(system.file("extdata","pm10_mesures_H_loc.csv",
25 package="talweg"))
26 exo_data <- read.csv(system.file("extdata","meteo_extra_noNAs.csv",
27 package="talweg"))
28 data <- getData(ts_data, exo_data,
29 date_format="%d/%m/%Y %H:%M", limit=120)
30 # Plus de détails à la section 1 ci-après.
31
32 # Prédiction de 10 courbes (jours 102 à 111)
33 pred <- computeForecast(data, 101:110, "Persistence", "Zero",
34 predict_from=8, memory=50, horizon=24, ncores=1)
35 # Plus de détails à la section 2 ci-après.
36
37 # Calcul des erreurs (sur un horizon arbitraire <= horizon de prédiction)
38 err <- computeError(data, pred, predict_from=8, horizon=20)
39 # Plus de détails à la section 3 ci-après.
40
41 # Puis voir ?plotError et les autres plot dans le paragraphe 'seealso'
42 -----
43 ${"##"} getData()
44
45 Les arguments de cette fonction sont, dans l'ordre :
46
47 1. **ts_data** : séries temporelles (fichier CSV avec entête ou data.frame) ; la
48 première colonne contient les heures, la seconde les valeurs.
49 2. **exo_data** : variables exogènes (fichier CSV avec entête ou data.frame) ; la
50 première colonne contient les jours, les $m$ suivantes les variables mesurées pour ce
51 jour, et les $m$ dernières les variables prédites pour ce même jour. Dans notre cas $m=4$
52 : pression, température, gradient de température, vitesse du vent.
53 3. **date_format** : format des heures dans ts_data (défaut : "%d/%m/%Y %H:%M", format
54 du fichier transmis par Michel Bobbia).
55 4. **limit** : nombre de séries à récupérer.
56 -----r
57 print(data)
58 #?Data
59 -----
60 ${"##"} computeForecast()
61
62 Les arguments de cette fonction sont, dans l'ordre :
63
64 1. **data** : le jeu de données renvoyé par getData()
65 2. **indices** : l'ensemble de jours dont on veut prévoir les "lendemains" (prochains
66 blocs de 24h) ; peut être donnée sous forme d'un vecteur de dates ou d'entiers
67 (correspondants aux numéros des jours).
68 3. **forecaster** : le nom du prédicteur principal à utiliser ; voir ?computeForecast
69 4. **pjump** : le nom du prédicteur de saut d'une série à l'autre ; voir
70 ?computeForecast
71 5. **memory** : le nombre de jours à prendre en compte dans le passé pour chaque
72 prévision (par défaut : Inf, c'est-à-dire tout l'historique pris en compte).
73 6. **predict_from** : première heure de prévision. Les séries prévues démarrent
74 cependant toutes à 1h du matin (en reprenant les premières valeurs connues).
75 7. **horizon** : dernière heure de prévision ; maximum 24 == minuit (valeur par défaut).
76 pred`$`getForecast(i) retourne une journée complète de 01:00 à 00:00 si horizon=24.
77 8. **ncores** : le nombre de processus parallèles (utiliser 1 pour une exécution
78 séquentielle)
79 -----r
80 print(pred)
81 #?computeForecast
82 -----
83 ${"##"} computeError()
84
85 Les arguments de cette fonction sont, dans l'ordre :
86
87 1. **data** : le jeu de données renvoyé par getData()
88 2. **pred** : les prédictions renvoyées par computeForecast()
89 3. **predict_from** : première heure de prévision ; peut être différente de l'analogue
90 dans l'appel à *computeForecast()*.
91 4. **horizon** : dernière heure de prévision à considérer pour le calcul de l'erreur ;
92 inférieure ou égale à la valeur de l'argument analogue dans *computeForecast()*
93 -----r
94 summary(err)
95 summary(err$abs)
96 summary(err$MAPE)
97 -----
98 ${"##"} Graphiques
99
100 Voir ?plotError : les autres fonctions graphiques sont dans la section 'seealso' :
101
102 ‘plotCurves’, ‘plotPredReal’, ‘plotSimils’, ‘plotFbox’,
103 ‘computeFilaments’, ‘plotFilamentsBox’, ‘plotRelVar’
104
105 ?plotXXX, etc.