X-Git-Url: https://git.auder.net/?p=talweg.git;a=blobdiff_plain;f=reports%2FPackageR.gj;fp=reports%2FPackageR.gj;h=d62dc36ae7599eee38e917468eb64d38eba67f1c;hp=0000000000000000000000000000000000000000;hb=4d376294a6286ca1548d978055731dac175ffa3a;hpb=b4bb50591a237f0510087e8bb9a2825b68037b47 diff --git a/reports/PackageR.gj b/reports/PackageR.gj new file mode 100644 index 0000000..d62dc36 --- /dev/null +++ b/reports/PackageR.gj @@ -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.