série temporelle, superposition de graph - décomposition

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Didier ILLAN
Messages : 23
Enregistré le : 27 Sep 2010, 07:59

série temporelle, superposition de graph - décomposition

Messagepar Didier ILLAN » 19 Oct 2010, 12:36

Bonjour,

j'ai une série temporelle, et je souhaiterai représenter par un graph la superposition de différente période afin de vérifier que les courbe soient parallèle, pour choisir entr ele modèle additif ou multiplicatif.

Comment pourrais-je réaliser ce graph?

Merci

Didier

Matthieu Lesnoff
Messages : 120
Enregistré le : 29 Nov 2004, 12:41

Re: série temporelle, superposition de graph - décomposition

Messagepar Matthieu Lesnoff » 19 Oct 2010, 16:47

Didier ILLAN a écrit :Comment pourrais-je réaliser ce graph?


pas sûr d'avoir bien compris la question mais peut être utiliser xyplot(lattice) et panel.superpose(lattice) après avoir créé une variable "groupe" (dans le data.frame qui contient les données) qui définit les périodes. Exemples simulés ci-dessous :

Code : Tout sélectionner

require(lattice)
mydata <- data.frame(
    y = rnorm(100),
    x = rep(1:25, 4),
    g = rep(letters[1:4], each = 25)
    )
mydata

xyplot(
    y ~ x,
    data = mydata,
    groups = g,
    panel = "panel.superpose",
    type = "l"
    )

xyplot(
    y ~ x,
    data = mydata,
    groups = g,
    panel = function(x, y, ...){
        panel.superpose(x, y, type = "l", ...)
        panel.abline(v = 7, type = "l", col = "red")
        panel.abline(h = 0, type = "l", lty = 2, col = "red")
        },
    auto.key = list(lines = TRUE, points = FALSE),
    xlim = c(5, 10),
    xlab = "X",
    ylab = "RNORM"
    )

xyplot(
    y ~ x | g,
    data = mydata,
    panel = function(x, y){
        panel.xyplot(x, y, type = "l")
        panel.abline(v = 7, type = "l", col = "red")
        panel.abline(h = 0, type = "l", lty = 2, col = "red")
        },
    layout = c(1, 4),
    as.table = TRUE,
    xlim = c(5, 10),
    xlab = "X",
    ylab = "RNORM"
    )


(voir les aides ?xyplot et ?panel.superpose)

M.

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Messagepar François Bonnot » 20 Oct 2010, 06:26

Bonjour,
Difficile de répondre sans en savoir davantage sur les données, mais voici deux autres pistes:
1) Organiser les données avec les 2 facteurs période et date dans la période, puis utiliser la fonction interaction.plot du package stats.
ou
2) Organiser les données dans un objet de classe ts (mts pour série multiple) avec les périodes en colonne, puis utiliser plot (donc plot.ts).

Voir l'aide de ts et plot.ts du package stats.

FB

Didier ILLAN
Messages : 23
Enregistré le : 27 Sep 2010, 07:59

Messagepar Didier ILLAN » 20 Oct 2010, 11:58

Bonjour,

voici le début de mes valeurs.

    DATE;RCMetro;RCRER;REMetro;SEC;Tetracite
    01/09/2010 00:00 ; NA; NA; NA; NA; NA
    01/09/2010 01:00 ; NA; NA; NA; NA; NA
    01/09/2010 02:00 ; NA; NA; NA; NA; NA
    01/09/2010 03:00 ; 23.0000000000; NA; 22.0000000000; 33.0000000000; NA
    01/09/2010 04:00 ; 78.0000000000; NA; 23.0000000000; 10.0000000000; NA
    01/09/2010 05:00 ; 362.0000000000; NA; 818.0000000000; 38.0000000000; NA
    01/09/2010 06:00 ; 397.0000000000; 1.0000000000; 335.0000000000; 10.0000000000; NA
    01/09/2010 07:00 ; 644.0000000000; 3.0000000000; 238.0000000000; 38.0000000000; NA
    01/09/2010 08:00 ; 469.0000000000; 12.0000000000; 240.0000000000; 27.0000000000; NA
    01/09/2010 09:00 ; 553.0000000000; 10.0000000000; 159.0000000000; 8.0000000000; 6.0000000000
    01/09/2010 10:00 ; 540.0000000000; 24.0000000000; 345.0000000000; 14.0000000000; NA
    01/09/2010 11:00 ; 405.0000000000; 41.0000000000; 139.0000000000; 20.0000000000; 2.0000000000
    01/09/2010 12:00 ; 399.0000000000; 27.0000000000; 680.0000000000; 101.0000000000; 1.0000000000
    01/09/2010 13:00 ; 236.0000000000; 52.0000000000; 190.0000000000; 165.0000000000; NA
    01/09/2010 14:00 ; 321.0000000000; 68.0000000000; 208.0000000000; 110.0000000000; NA
    01/09/2010 15:00 ; 463.0000000000; 47.0000000000; 152.0000000000; 67.0000000000; NA
    01/09/2010 16:00 ; 528.0000000000; 57.0000000000; 180.0000000000; 71.0000000000; NA
    01/09/2010 17:00 ; 483.0000000000; 21.0000000000; 171.0000000000; 134.0000000000; 3.0000000000
    01/09/2010 18:00 ; 447.0000000000; 16.0000000000; 488.0000000000; 200.0000000000; 4.0000000000
    01/09/2010 19:00 ; 471.0000000000; 8.0000000000; 248.0000000000; 112.0000000000; 5.0000000000
    01/09/2010 20:00 ; 485.0000000000; 1.0000000000; 178.0000000000; 119.0000000000; NA
    01/09/2010 21:00 ; 198.0000000000; NA; 172.0000000000; 99.0000000000; 3.0000000000
    01/09/2010 22:00 ; NA; NA; NA; NA; NA
    01/09/2010 23:00 ; NA; NA; NA; NA; NA
    02/09/2010 00:00 ; NA; NA; NA; NA; NA
    02/09/2010 01:00 ; 124.0000000000; NA; 434.0000000000; 42.0000000000; 5.0000000000
    02/09/2010 02:00 ; 45.0000000000; NA; NA; 2.0000000000; 3.0000000000
    02/09/2010 03:00 ; 48.0000000000; NA; NA; 19.0000000000; 8.0000000000


et l'idée cela serait de représenter graphiquement chaque période (correspondant à 24h).

Merci

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 20 Oct 2010, 18:26

Il y a des exemples traités sur ce forum. Utiliser les fonctions de recherche.
Renaud

Didier ILLAN
Messages : 23
Enregistré le : 27 Sep 2010, 07:59

Messagepar Didier ILLAN » 21 Oct 2010, 12:41

Bonjour,

après recherche sur le Forum, je ne trouve pas le code qui pourrait m'afficher les différentes périodes.

Je ne suis pas spécialiste R ni statistique, j'ai vu une fonction xyplot qui pourrait répondre mais je ne vois pas comment l'utiliser?

Merci


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité