Bonjour à tous :) ,
Je je dois effectuer un traitement sur des séries chronologiques à l'aide du logiciel R (mes finances ne me permettant pas de m'offrir le logiciel SAS dont j'ai appris à me servir en cours, j'utilise donc pour la première fois R pour ce travail).
Je dispose de séries de comptages du trafic routier heure par heure sur des périodes de plusieurs mois. Ces séries sont stationnaires, le trafic étant stable sur une période de plusieurs mois si on mets de côté les mois particuliers de juillet aout et septembre). Je voudrai réaliser une désagrégation de ces comptage de manière à trouver trois "sous courbes" de répartition de ma série chronologique entre sept et vingt heures, selon trois motifs liés aux déplacements.
En outre je dispose pour cela d'informations supplémentaires que j'aimerai pouvoir intégrer à ce problème, à savoir la répartition ( en pourcentage) de ces motifs cette période 7 à 20 h.
J'ai essayé de réaliser une analyse ARMA (bidouillé à partir d'un exemple d'analyse du niveau du lac Huron que j'ai trouvé sur internet, mais je ne suis pas convaincu du résultat) mais j'ai du mal à interpréter les coefficients et autre résultats donnés (le chapitre des séries chronologiques n' a pas été abordé cette année en cours :/ ).
Quelqu'un pourrait il m'expliquer comment choisir les paramètres p et q d'un modèle ARMA et comment interpréter les coefficients donnés en résultats.
D'autre part comment pourrai-je différencier les périodes aillant les mêmes caractéristiques au niveau de la circulation (même heures de la journée jour après jour, ou alors même profil dans les déplacement du mardi ou jeudi, un peu moins important le lundi et vendredi et beaucoup moins importants les Weekends)
Autrement si quelqu'un sait comment réaliser une analyse spectrale et interpréter les résultats je serait fortement intéressé.
Enfin pour être sur d'avoir bien compris, une pacf indique qu'on a pas de corrélation entre les données lorsqu'aucune autres barres que la première ne dépasse les lignes en pointillés , c'est bien ça ?
voici le code que j'ai utilisé, je l'ai trouvé à l'adresse http://foad.univ-tlse1.fr/mod/resource/ ... p?id=11406 pour parer à toute accusation de plagiat :p .
Les lignes qui commencent par le symbole * sont celles que j'ai modifiées pour les adapter à ma série, d'autre part j'ai enlevé les interprétations de
l'exemple sur le lac Huron qui ne servent pour le coup à rien dans le code affiché ici.
Enfin j'ai remplacé le nom de la variable étudié originellement à savoir niveau par debit pour rendre les choses plus explicites.
# lecture des données
*> debit = scan('g:/R/type1.txt')
> # conversion en série temporelle, annuelle commençant en 1
*> debit = ts(debit,start=1,frequency=1)
> # estimation MCO du débit ( j'ai repris de l'exemple sur le lac Huron cette régression, mais je ne suis aps convaincu de son utilité dans mon cas :/ )
> temps = 1:length(debit)
> regmco = lm(debit ~ temps)
> # examen des résidus. Si on ne sait où ils sont dans l’objet regmco, taper
> plot(temps, regmco$residuals, type="l")
> # ACF et PACF
> source("g:/R/identif_outils.R") #*fichier récupéré avec l'exemple, qui permet entre autre de lancer la commande acf2
> plot(debit)
*>= title("débit de la circulation heure par heure")
> acf2( debit)
> temps = 1:length(debit)
> regmco = lm(debit ~ temps)
> plot(temps, regmco$residuals, type="l")
> abline(h=0, untf = FALSE)
> title("Résidus MCO")
#On décide d'ajuster un modèle tenant compte de la dynamique de l'erreur révélée sur ces résidus. * C'est à dire dans mon cas ?
#Le modèle qu'on veut ajuster est
*#y_t est le débit de l'heure t, t= 1, 2,...n Z_t est un bruit blanc.
#C'est un exemple de modèle ARMAX.
#Il faut d'abord identifier les ordres p d'auto régression et q de moyenne mobile.
#On mène cette opération sur les résidus de l'ajustement MCO.
*> source("g:/R/identif_outils.R")
> acf2( regmco$residuals)
*> resimco<- regmco$residuals
#( j'ai rajouté cette ligne pour que r reconnaisse la variable resimco utilisée plus loin et qui n'était pas à la base définie)
> (ajustar1 = arima(resimco, order = c(1, 0, 0),include.mean = FALSE))
> # test de blancheur * ( je ne sais pas exactement à quoi sert ce test si quelqu un le sait ça m'interesse aussi)
> tsdiag(ajustar1)
> # version alphanumérique du test
> Box.test.2(ajustar1$residuals, 1:10)
# On essaie maintenant avec un modèle AR(2) pour l'erreur.
> (ajustar2 = arima(resimco, order = c(2, 0, 0),include.mean = FALSE))
> # significativité des coefficients
> t_stat(ajustar2)
> # examen de l’ACF des résidus de l'ajustement du modèle AR(2) ci-dessus
> # et test de blancheur
> tsdiag(ajustar2)
> # version alphanumérique du test
> # ajustement simultané de la moyenne et de la structure de covariance par maximum de vraisemblance
> (ajustsim2 = arima(debit, order = c(2, 0, 0),xreg = temps, method="ML"))
Un exemple de fichier de comptage est accessible à l'adresse suivante : http://cjoint.com/?hyqLdVwDHw