| 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, input_tz="GMT", |
| 29 | date_format="%d/%m/%Y %H:%M", working_tz="GMT", |
| 30 | predict_at=7, limit=120) |
| 31 | # Plus de détails à la section 1 ci-après. |
| 32 | |
| 33 | # Prédiction de 10 courbes (jours 102 à 111) |
| 34 | pred <- computeForecast(data, 101:110, "Persistence", "Zero", memory=50, |
| 35 | horizon=12, ncores=1) |
| 36 | # Plus de détails à la section 2 ci-après. |
| 37 | |
| 38 | # Calcul des erreurs (sur un horizon arbitraire <= horizon de prédiction) |
| 39 | err <- computeError(data, pred, horizon=6) |
| 40 | # Plus de détails à la section 3 ci-après. |
| 41 | |
| 42 | # Puis voir ?plotError et les autres plot dans le paragraphe 'seealso' |
| 43 | ----- |
| 44 | ${"##"} getData() |
| 45 | |
| 46 | Les arguments de cette fonction sont, dans l'ordre : |
| 47 | |
| 48 | 1. **ts_data** : séries temporelles (fichier CSV avec entête ou data.frame) ; la |
| 49 | première colonne contient les heures, la seconde les valeurs. |
| 50 | 2. **exo_data** : variables exogènes (fichier CSV avec entête ou data.frame) ; la |
| 51 | première colonne contient les jours, les $m$ suivantes les variables mesurées pour ce |
| 52 | jour, et les $m$ dernières les variables prédites pour ce même jour. Dans notre cas $m=4$ |
| 53 | : pression, température, gradient de température, vitesse du vent. |
| 54 | 3. **input_tz** : zone horaire pour ts_data (défaut : "GMT"). |
| 55 | 4. **date_format** : format des heures dans ts_data (défaut : "%d/%m/%Y %H:%M", format |
| 56 | du fichier transmis par Michel). |
| 57 | 5. **working_tz** : zone horaire dans laquelle on souhaite travailler avec les données |
| 58 | (défaut : "GMT"). |
| 59 | 6. **predict_at** : heure à laquelle s'effectue la prévision $-$ et donc dernière heure |
| 60 | d'un bloc de 24h, relativement à working_tz. data`$`getSerie(3) renvoit ainsi les 24 |
| 61 | valeurs de 8h à 7h pour le $3^{eme}$ bloc de 24h présent dans le jeu de données. |
| 62 | -----r |
| 63 | print(data) |
| 64 | #?Data |
| 65 | ----- |
| 66 | ${"##"} computeForecast() |
| 67 | |
| 68 | Les arguments de cette fonction sont, dans l'ordre : |
| 69 | |
| 70 | 1. **data** : le jeu de données renvoyé par getData() |
| 71 | 2. **indices** : l'ensemble de jours dont on veut prévoir les "lendemains" (prochains |
| 72 | blocs de 24h) ; peut être donnée sous forme d'un vecteur de dates ou d'entiers |
| 73 | (correspondants aux numéros des jours). |
| 74 | 3. **forecaster** : le nom du prédicteur principal à utiliser ; voir ?computeForecast |
| 75 | 4. **pjump** : le nom du prédicteur de saut d'une série à l'autre ; voir |
| 76 | ?computeForecast |
| 77 | 5. **memory** : le nombre de jours à prendre en compte dans le passé pour chaque |
| 78 | prévision (par défaut : Inf, c'est-à-dire tout l'historique pris en compte). |
| 79 | 6. **horizon** : le nombre d'heures à prédire ; par défaut "data`$`getStdHorizon()", |
| 80 | c'est-à-dire le nombre d'heures restantes à partir de l'instant de prévision + 1 jusqu'à |
| 81 | minuit (17 pour predict_at=7 par exemple). |
| 82 | 7. **ncores** : le nombre de processus parallèles (utiliser 1 pour une exécution |
| 83 | séquentielle) |
| 84 | -----r |
| 85 | print(pred) |
| 86 | #?computeForecast |
| 87 | ----- |
| 88 | ${"##"} computeError() |
| 89 | |
| 90 | Les arguments de cette fonction sont, dans l'ordre : |
| 91 | |
| 92 | 1. **data** : le jeu de données renvoyé par getData() |
| 93 | 2. **pred** : les prédictions renvoyées par computeForecast() |
| 94 | 3. **horizon** : le nombre d'heures à considérer pour le calcul de l'erreur ; doit être |
| 95 | inférieur ou égal à l'horizon utilisé pour la prédiction (même valeur par défaut : |
| 96 | "data`$`getStdHorizon()") |
| 97 | -----r |
| 98 | summary(err) |
| 99 | summary(err$abs) |
| 100 | summary(err$MAPE) |
| 101 | ----- |
| 102 | ${"##"} Graphiques |
| 103 | |
| 104 | Voir ?plotError : les autres fonctions graphiques sont dans la section 'seealso' : |
| 105 | |
| 106 | ‘plotCurves’, ‘plotPredReal’, ‘plotSimils’, ‘plotFbox’, |
| 107 | ‘computeFilaments’, ‘plotFilamentsBox’, ‘plotRelVar’ |
| 108 | |
| 109 | ?plotXXX, etc. |