2017-03-21 1 views
3

c'est donc mes données data les données commence à partir de 26/07/2016 et se termine le 10/03/2017 donc 2 questions: Est-ce exact? en utilisant des tbats? pour une saisonnalité hebdomadaire? Je veux aussi que les données prédites ressemblent aux données initiales mais comme montré que ce n'est pas mon cas, comment puis-je faire ça? ce que j'ai et est ici le code tropprévision des données hebdomadaires à l'aide tbats

enter image description here

Je vous remercie exécuté cette commande pour obtenir enfin ce à l'aide de tributylétain prévision

 data.raw=read.csv(file=file.choose(),header=TRUE,sep=";",row.names=NULL)%>% 
     mutate(date.re = as.POSIXct(date, format = "%d/%m/%Y")) 
     complete.dates <- range(data.raw$date.re) 
     dates.seq <- seq(complete.dates[1], complete.dates[2], by = "week") 
     series <- data.frame(sale.week = week(dates.seq),sale.month = month(dates.seq), sale.year = year(dates.seq)) 

     data.post <- data.raw %>% 
     mutate(sale.week = week(date.re),sale.month = month(date.re), sale.year = year(date.re)) %>% 
     select(Quantite, sale.week,sale.month, sale.year) %>% 
     group_by(sale.week,sale.month, sale.year) %>% 
     summarize_all(funs(sum(.))) %>% 
     right_join(series) %>% 
     replace_na(list(Quantite = 0)) 

     data2=data.post[,4] 
     sensor <- ts(data2,frequency=52) 
     fit <- tbats(sensor) 
     fc <- forecast(fit) 
     plot(fc) 

à l'avance

+0

les gars s'il vous plaît aider – user3010971

Répondre

0

Vous êtes S'adapter correctement et prévoir correctement. Cependant, vous spécifiez incorrectement la saisonnalité.

Pour obtenir cela en caractère saisonnier hebdomadaire vous souhaiterez probablement utiliser

sensor <- ts(data2,frequency=7) 

Pour comprendre plus, vous pouvez lire à ce sujet here. Mais au fond, il se résume à combien d'observations avez-vous avant qu'il ne tombe encore le même jour. Donc, si vous avez 7 jours de données dans chaque semaine de données, votre fréquence devrait être de 7. Si vous avez seulement 5 jours de données pour chaque semaine, votre fréquence devrait être 5.

Un des avantages de tbats est que vous peut avoir deux périodes saisonnières. Vous pouvez spécifier à la fois la saisonnalité hebdomadaire et annuel en essayant ceci:

library(forecast) 
sensor <- msts(data2, seasonal.periods=c(7,365.25)) 

Une autre option serait d'utiliser ARIMA. Cependant, vous ne pouvez utiliser qu'une période saisonnière avec ARIMA. Vous voudriez utiliser chaque semaine. L'utilisation d'ARIMA vous permettra également d'inclure des indicateurs tels que les vacances où vous vous attendez à voir des ventes exceptionnellement grandes ou petites. Vous pouvez également utiliser des indicateurs pour les jours précédant les jours fériés si vous vous attendez à ce qu'ils soient également différents de la tendance normale.

J'ai effectué une certaine saisonnalité hebdomadaire et j'ai eu la meilleure chance d'utiliser ARIMA principalement parce que vous pouvez inclure d'autres covariables.

D'autres choses que vous pourriez vouloir examiner vérifient des valeurs aberrantes. Vous pouvez le faire avec tsoutliers() qui se trouve également dans le package forecast. Et, parfois, vous pouvez obtenir de meilleurs résultats en transformant vos données. Alors, regardez ça aussi.

Pour plus de détails, vous pourriez vouloir lire un peu sur les séries temporelles. This is an excellent book with many examples in R.