Pour le devoir de série temporelles, les données fournies par Google Insight sont hebdomadaires, ce qui peut rendre la modélisation compliquée. Comme on l’a évoqué en fin de cours, il peut être plus simple de travailler sur des données mensuelles. La petite fonction suivante permet de transformer les données pour avoir des données mensuelles (avec des moyennes par mois, ce qui fait qu’un mois de 28 jours et un mois de 31 jours sont comparables). Histoire d’illustrer, prenons un mot au hasard, disons…. épilation. On commence par sauver le fichier csv, et on le lit sous R,
EPILATION=read.table("/home/charpentier/report-epilation.csv", skip=4,header=TRUE,sep=",",nrows=426)
La petite fonction suivant va nous aider à convertir la base en une série temporelle mensuelle,
H2M=function(BASE){ X=BASE[,2] date1=substr(as.character(BASE$Semaine),1,10) date2=substr(as.character(BASE$Semaine),14,23) D1=as.Date(date1,"%Y-%m-%d") D2=as.Date(date2,"%Y-%m-%d") vm=vy=N=NA for(t in 1:length(D1)){ mois=seq(D1[t],D2[t],length=7) vm=c(vm,as.POSIXlt(mois)$mon+1) vy=c(vy,as.POSIXlt(mois)$year+1900) N=c(N,rep(X[t],7))} N=N[-1]; vm=vm[-1]; vy=vy[-1] YM=vy*100+vm Z=tapply(N,as.factor(YM),mean) Zts=ts(Z,start=c(2004,1),frequency=12) return(Zts)}
Si on travaille sur la série hebdomadaire, on a la série suivante
hebdo=ts(EPILATION$épilation,start=2004, frequency=52)
La fonction d’autocorrélation est alors
acf(hebdo,160)
Maintenant, on peut travailler sur les données mensuelles. On utilise alors
mensuel=H2M(EPILATION)
Le graphique est alors le suivant
La fonction d’autocorrélation est cette fois la suivante
acf(mensuel,40)
On retrouve le comportement cyclique, avec une saisonnalité annuelle. Mais avec 12 retards, on devrait avoir des modèles plus simples qu’avec 52 retards. Bref, il peut être plus simple de travailler sur des données mensuelles qu’hebdomadaires. Mais chacun est libre de la série qu’il ou elle analysera…