Commit | Line | Data |
---|---|---|
4d376294 BA |
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")) | |
d2ab47a7 BA |
28 | data <- getData(ts_data, exo_data, |
29 | date_format="%d/%m/%Y %H:%M", limit=120) | |
4d376294 BA |
30 | # Plus de détails à la section 1 ci-après. |
31 | ||
32 | # Prédiction de 10 courbes (jours 102 à 111) | |
d2ab47a7 BA |
33 | pred <- computeForecast(data, 101:110, "Persistence", "Zero", |
34 | predict_from=8, memory=50, horizon=24, ncores=1) | |
4d376294 BA |
35 | # Plus de détails à la section 2 ci-après. |
36 | ||
37 | # Calcul des erreurs (sur un horizon arbitraire <= horizon de prédiction) | |
d2ab47a7 | 38 | err <- computeError(data, pred, predict_from=8, horizon=20) |
4d376294 BA |
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. | |
d2ab47a7 BA |
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. | |
4d376294 BA |
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). | |
d2ab47a7 BA |
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 | |
4d376294 BA |
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() | |
d2ab47a7 BA |
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()* | |
4d376294 BA |
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. |