----- # 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, date_format="%d/%m/%Y %H:%M", 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", predict_from=8, memory=50, horizon=24, 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, predict_from=8, horizon=20) # 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. **date_format** : format des heures dans ts_data (défaut : "%d/%m/%Y %H:%M", format du fichier transmis par Michel Bobbia). 4. **limit** : nombre de séries à récupérer. -----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. **predict_from** : première heure de prévision. Les séries prévues démarrent cependant toutes à 1h du matin (en reprenant les premières valeurs connues). 7. **horizon** : dernière heure de prévision ; maximum 24 == minuit (valeur par défaut). pred`$`getForecast(i) retourne une journée complète de 01:00 à 00:00 si horizon=24. 8. **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. **predict_from** : première heure de prévision ; peut être différente de l'analogue dans l'appel à *computeForecast()*. 4. **horizon** : dernière heure de prévision à considérer pour le calcul de l'erreur ; inférieure ou égale à la valeur de l'argument analogue dans *computeForecast()* -----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.