Pour le devoir de série temporelles, les données fournies par Google trend sont hebdomadaires, ce qui peut rendre la modélisation compliquée. Comme on l’a évoqué en 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.