Time Serie, Zoo, Moyenne Mobile
Maybe your like
Un forum francophone d'échange autour du logiciel de calcul statistique R
Vers le contenu
Rechercher Recherche avancéeTime serie, zoo, moyenne mobile
Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateursModérateur : Groupe des modérateurs
Répondre Rechercher Recherche avancée 10 messages • Page 1 sur 1 Didier ILLAN Messages : 23 Enregistré le : 27 Sep 2010, 07:59Time serie, zoo, moyenne mobile
- Citation
Messagepar Didier ILLAN » 27 Sep 2010, 13:07
Bonjour, voila je suis nouveau sur R, et je pose surement des questions maintefois posées (j'espère pas). Je souhaiterai pouvoir comparer des données qui sont relevés à intervalle régulier (par heure), chaque jour. Je suis parti donc sur l'apprentissage (je ne suis pas statisticiens à l'origine) des séries chronologiques. J'ai donc un fichier csv qui à cette forme- DATE;RCMetro;RCRER;REMetro;SEC;Tetracite01/09/2010 00:00 ; NA; NA; NA; NA; NA01/09/2010 01:00 ; NA; NA; NA; NA; NA01/09/2010 02:00 ; NA; NA; NA; NA; NA01/09/2010 03:00 ; 23.0000000000; NA; 22.0000000000; 33.0000000000; NA01/09/2010 04:00 ; 78.0000000000; NA; 23.0000000000; 10.0000000000; NA01/09/2010 05:00 ; 362.0000000000; NA; 818.0000000000; 38.0000000000; NA01/09/2010 06:00 ; 397.0000000000; 1.0000000000; 335.0000000000; 10.0000000000; NA
- Citation
Messagepar Aline Deschamps » 27 Sep 2010, 14:42
Bonjour, Je ne connais pas le package "zoo", mais pour la gestion des dates/heures, le package "chron" me semble assez bien approprié (peut-être en effectuant quelques petites modifications sur la forme des données...). Il permettrait je pense de simplement transformer la 1ère colonne en format date, et de passer les autres en "as.numeric". Cordialement, A.D. Haut Serge Rapenne Messages : 1426 Enregistré le : 20 Aoû 2007, 15:17 Contact : Contacter Serge Rapenne Site Internet- Citation
Messagepar Serge Rapenne » 27 Sep 2010, 15:19
Bonjour, je ne connais pas le package zoo mais l'aide de la fonction read.zoo indique qu'elle est une interface à la fonction read.table. Dans ce cas les paramètres de read.table sont disponibles dans read.zoo et notamment la paramètre colClasses qui permet de spécifier le type de données dans les colonnes.Code : Tout sélectionner
?read.table pour les détails. Si tu as besoin d'aide pour définir ce paramètre donne nous un bout de ton fichier de donnée (le fichier CAPACITE_cdr_nbre_com_services.rrd.csv pas l'objet TABZOO) pour pouvoir faire des testsSergeEdit; Il y a un exemple de l'utilisation de colClasses dans read.zoo dans l'aide de read.zooCode : Tout sélectionner
?read.zoo Haut Didier ILLAN Messages : 23 Enregistré le : 27 Sep 2010, 07:59- Citation
Messagepar Didier ILLAN » 27 Sep 2010, 17:23
Merci pour vos remarques. J'avais vu ce paramètre "colClass" dans read.table, mais je n'ai pas compris comment l'utiliser. Je souhaite que mes colonnes autres que le temps (1er colonne index) soit des entiers. Je veux bien donner un bout de mon fichier csv mais comment fait-t-on pour l'ajouter?? Mon but est de créer un Time Serie pour effectuer des fonctions simples, tendance, regression lineaire, moyenne mobile, coef de variation saisonnier ce genre de chose. Si vous avez une autre méthode simple, je suis preneur. Merci encore de votre patiente, je fait mon stage de fin d'année de Master en Télécom et je ne suis pas doué en Stats. Haut Serge Rapenne Messages : 1426 Enregistré le : 20 Aoû 2007, 15:17 Contact : Contacter Serge Rapenne Site Internet- Citation
Messagepar Serge Rapenne » 28 Sep 2010, 06:33
En utilisant les données qui sont dans ton message d'origine ceci semble fonctionner :Code : Tout sélectionner
TabZOO <- read.zoo("r:/toto.txt", format="%d/%m/%Y %H:%M", FUN=as.chron, regular=TRUE, index.column=1, sep=";", dec=".", header=TRUE, na.strings="NA", colClasses=c("character","numeric","numeric","numeric","numeric","numeric")) En ce qui concerne les moyennes mobiles, il semble que la fonction rollmean du package ZOO fasse ça Serge Haut Didier ILLAN Messages : 23 Enregistré le : 27 Sep 2010, 07:59- Citation
Messagepar Didier ILLAN » 29 Sep 2010, 11:48
Merci, la commande read.zoo avec le paramètre colClass fonctionne bien. En revanche je rencontre un problème pour réaliser ma moyenne mobile. En effet j'ai un comportement périodique toutes les 24h, je souhaite donc faire une moyenne mobile d'ordre 24 (je crois que c'est cela). Mais je ne vois pas comment réaliser cela avec rollmean. Est-ce que quelqu'un aurait un idée. En vous remerçiant par avance. Haut Dominique Soudant Messages : 758 Enregistré le : 23 Avr 2008, 11:12 Contact : Contacter Dominique Soudant Site Internet- Citation
Messagepar Dominique Soudant » 29 Sep 2010, 12:37
Didier ILLAN a écrit :Est-ce que quelqu'un aurait un idée.?decomposeZoo répond à un besoin particulier :
An S3 class with methods for totally ordered indexed observations. It is particularly aimed at irregular time series of numeric vectors/matrices and factors. zoo's key design goals are independence of a particular index/date/time class and consistency with ts and base R by providing methods to extend standard generics.Si tu n'as pas ce besoin (ta série temporelle à l'air bien régulière, vue d'ici ... ), tu te mets peut être des cailloux dans les chaussures pour rien. En même temps ça ne fait que déplacer le pb : pour décompose() il faudra que tu fasses une ts avec tes données. Haut Didier ILLAN Messages : 23 Enregistré le : 27 Sep 2010, 07:59
- Citation
Messagepar Didier ILLAN » 29 Sep 2010, 13:12
Oui effectivement c'est peut être trop lour pour mon besoin dont les données sont absolument régulière. Que me conseillerai vous alors comme solution. Je suis avec mon fichier excel, et je souhaiterai donc constituer ma time série en utlisant la valeur temps (étant donné quelle est fournie, je trouve dommage de ne pas en profiter). en utilisant un read.csv, mais quelle fonction pour récupérér l'index temps et est-ce que je peux garder mes valeurs en type "numerique" avec colClass? je pensais à cela mais ce n'est peut être pas le plus adapté: Tab2$DATE ← strptime(Tab2$DATE, format= "%d/%m/%Y %H:%M") Par contre ensuite je ne sais pas transformer ces données en TS? Merci Haut Dominique Soudant Messages : 758 Enregistré le : 23 Avr 2008, 11:12 Contact : Contacter Dominique Soudant Site Internet- Citation
Messagepar Dominique Soudant » 29 Sep 2010, 13:50
Soit une data frame :Code : Tout sélectionner
> head(Série[,c("Année","Trimestre","Observée")]) Année Trimestre Observée1 1979 1 5.9436132 1979 2 3.6424283 1979 3 3.5680244 1979 4 5.8063055 1980 1 6.5477556 1980 2 4.104974Attendu que la série est absolument régulière et donc que j'ai comblé les irrégularités par des NA :Code : Tout sélectionner
> tail(Série[,c("Année","Trimestre","Observée")]) Année Trimestre Observée115 2007 3 NA116 2007 4 NA117 2008 1 5.402427118 2008 2 NA119 2008 3 NA120 2008 4 NAJe peux transformer ce DF en TS via :Code : Tout sélectionner
TSObservée <- ts(Série$Observée ,frequency=4 ,start=c(min(Série$Année),1) ,end=c(max(Série$Année),4))Dans ton problème, tu as des jours subdivisés en heures. Il faut que tu te fasses une variable jour et une variable heure. Jour est une série régulière (i.e. 0,1,2, ... ) Heure vaut de 0 à 23.EDITPour générer la série des jours (e.g. 34) tu peux utiliser unCode : Tout sélectionner
rep(1:34,each=24)pendant que pour les heures tu peux faire unCode : Tout sélectionner
rep(0:23,34)Si tu préfères t'appuyer sur ta date, pour les jour tu peux t'appuyer sur la fonction julian() mais il faut que ta date arrive en format date, ce que tu pourras faire avec unCode : Tout sélectionner
as.Date(substr(<taVariableDate>,1,10),"%d/%m/%Y")), et pour la variable Heure unCode : Tout sélectionner
substr(<taVariableDate>,12,13)Je garantis pas le code dans les détails, mais l'essentiel est là. L'erreur n'est pas l'erreur, l'erreur c'est de commencer. J'ai commencé, je fini ... Haut Didier ILLAN Messages : 23 Enregistré le : 27 Sep 2010, 07:59- Citation
Messagepar Didier ILLAN » 30 Sep 2010, 14:41
Bonjour, bon j'avance tout de même, j'ai utilisé le package "timeSeries". J'ai pu donc convertir mon data.frame en time série. maintenant je voudrais réaliser ma moyenne mobile, j'ai vu qu'il y avait une fonction "kernel" Je crois comprendre (je ne suis pas expert) qu'avec la fonction "modified.Daniell" ça me permet d'avoir des coefficients pour ma moyenne pondérée paire. ex: k2 <- kernel("modified.daniell", 24) j'ai vu qu'il fallait faire un "kernapply()" pour appliquer cette fonction. Dans le package timeSerie, la fonction pour appliquer une fonction est fapply(x, from, to, FUN). Je pense que c'est dans la partie FUN qu'il faut que je rentre l'information du kernapply mais je ne vois pas comment. Si quelqu'un peut m'aider? Merci Didier Haut Afficher les messages postés depuis : Tous1 jour7 jours2 semaines1 mois3 mois6 mois1 an Trier par AuteurDateSujet CroissantDécroissant Répondre 10 messages • Page 1 sur 1Retourner vers « Questions en cours »
Aller à- Annonces
- Annonces
- Fichiers
- Fiches
- Packages
- Liens
- Scripts et fonctions R
- Discussions
- Questions en cours
- Archives : Environnement de R
- Archives : Manipulation de données avec R
- Archives : Fonctions graphiques
- Archives : Fonctions statistiques
- Archives : Autres
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité
Développé par phpBB® Forum Software © phpBB Limited Traduit par phpBB-fr.comTag » Code R Moyenne Mobile
-
La Moyenne Mobile Sur Trois Valeurs Dans R - AskCodez
-
La Moyenne Mobile De Code Dans La R ~ “ma” Fonction - AskCodez
-
R : Utilisation Filter()/ou Moyenne Mobile
-
[PDF] Cours Statistique Et Logiciel R - Adeline Leclercq Samson
-
R — Calcul De La Moyenne Mobile - Web-dev-qa-db
-
Calcul De La Moyenne Mobile
-
Calcul De La Moyenne Mobile - IP Girl
-
Moyenne Mobile De W%R
-
Moyenne Mobile - Wikipédia
-
Moyenne Mobile
-
[PDF] Manuel De Programmation | Axial Finance
-
[PDF] Introduction Aux Séries Temporelles, Tendance Et Composante ...