J'essaie de faire une analyse des séries chronologiques et je suis nouveau dans ce domaine. J'ai un décompte quotidien d'un événement de 2006-2009 et je veux y adapter un modèle de série chronologique. Voici les progrès que j'ai réalisés:
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
plot.ts(timeSeriesObj)
L'intrigue résultante que j'obtiens est:
Afin de vérifier s'il y a une saisonnalité et une tendance dans les données ou non, je suis les étapes mentionnées dans cet article :
ets(x)
fit <- tbats(x)
seasonal <- !is.null(fit$seasonal)
seasonal
et dans le blog de Rob J Hyndman :
library(fma)
fit1 <- ets(x)
fit2 <- ets(x,model="ANN")
deviance <- 2*c(logLik(fit1) - logLik(fit2))
df <- attributes(logLik(fit1))$df - attributes(logLik(fit2))$df
#P value
1-pchisq(deviance,df)
Les deux cas indiquent qu'il n'y a pas de saisonnalité.
Lorsque je trace les ACF et PACF de la série, voici ce que j'obtiens:
Mes questions sont:
Est-ce la façon de gérer les données de séries chronologiques quotidiennes? Cette page suggère que je devrais examiner les tendances hebdomadaires et annuelles, mais l'approche n'est pas claire pour moi.
Je ne sais pas comment procéder une fois que j'ai les parcelles ACF et PACF.
Puis-je simplement utiliser la fonction auto.arima?
fit <- arima (myts, order = c (p, d, q)
***** Mise à jour des résultats Auto.Arima ******
Lorsque je modifie la fréquence des données à 7 selon les commentaires de Rob Hyndman ici , auto.arima sélectionne un modèle ARIMA saisonnier et sort:
Series: timeSeriesObj
ARIMA(1,1,2)(1,0,1)[7]
Coefficients:
ar1 ma1 ma2 sar1 sma1
0.89 -1.7877 0.7892 0.9870 -0.9278
s.e. NaN NaN NaN 0.0061 0.0162
sigma^2 estimated as 21.72: log likelihood=-4319.23
AIC=8650.46 AICc=8650.52 BIC=8682.18
****** Vérification de la saisonnalité mise à jour ******
Lorsque je teste la saisonnalité avec la fréquence 7, elle produit True mais avec la saisonnalité 365,25, elle produit false. Est-ce suffisant pour conclure à un manque de saisonnalité annuelle?
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=7)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
résultats:
True
tandis que
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
résultats:
False
R
simple n'a pas la capacité de la gérer. Je rechercherais des solutions commerciales s'il y a un coût d'inventaire / de fabrication élevé pour le produit que vous essayez de prévoir. R
a des limites sévères pour la prévision des tâches comme la vôtre. Regardez les questions sur les prévisions quotidiennes ailleurs sur ce site.
str(x)
donne?