En général, fouillez dans un manuel d'analyse de séries chronologiques avancé (les livres d'introduction vous indiqueront généralement de simplement faire confiance à votre logiciel), comme Time Series Analysis by Box, Jenkins & Reinsel. Vous pouvez également trouver des détails sur la procédure Box-Jenkins en recherchant sur Google. Notez qu'il existe d'autres approches que Box-Jenkins, par exemple celles basées sur AIC.
Dans R, vous convertissez d'abord vos données en un objet ts
(série chronologique) et dites à R que la fréquence est de 12 (données mensuelles):
require(forecast)
sales <- ts(c(99, 58, 52, 83, 94, 73, 97, 83, 86, 63, 77, 70, 87, 84, 60, 105, 87, 93, 110, 71, 158, 52, 33, 68, 82, 88, 84),frequency=12)
Vous pouvez tracer les fonctions d'autocorrélation (partielles):
acf(sales)
pacf(sales)
Ceux-ci ne suggèrent aucun comportement AR ou MA.
Ensuite, vous ajustez un modèle et inspectez-le:
model <- auto.arima(sales)
model
Voir ?auto.arima
pour de l'aide. Comme nous le voyons, auto.arima
choisit un modèle simple (0,0,0), car il ne voit ni tendance ni saisonnalité, ni AR ni MA dans vos données. Enfin, vous pouvez prévoir et tracer la série chronologique et prévoir:
plot(forecast(model))
Regardez ?forecast.Arima
(notez le A majuscule!).
Ce manuel en ligne gratuit est une excellente introduction à l'analyse et à la prévision des séries chronologiques à l'aide de R. Très recommandé.
Deux choses: votre série chronologique est mensuelle, vous avez besoin d'au moins 4 ans de données pour une estimation ARIMA raisonnable, car 27 points reflétés ne donnent pas la structure d'autocorrélation. Cela peut également signifier que vos ventes sont affectées par certains facteurs externes, plutôt que d'être corrélées avec sa propre valeur. Essayez de savoir quel facteur affecte vos ventes et ce facteur est mesuré. Ensuite, vous pouvez exécuter une régression ou VAR (Vector Autoregression) pour obtenir des prévisions.
Si vous n'avez absolument rien d'autre que ces valeurs, votre meilleure façon est d'utiliser une méthode de lissage exponentiel pour obtenir une prévision naïve. Le lissage exponentiel est disponible dans R.
Deuxièmement, ne voyez pas les ventes d'un produit isolément, les ventes de deux produits peuvent être corrélées, par exemple l'augmentation des ventes de café peut refléter une diminution des ventes de thé. utilisez les autres informations sur le produit pour améliorer vos prévisions.
Cela se produit généralement avec les données de vente dans la chaîne de distribution ou d'approvisionnement. Ils ne montrent pas beaucoup de structure d'autocorrélation dans la série. Alors que d'autre part, des méthodes comme ARIMA ou GARCH fonctionnent généralement avec des données boursières ou des indices économiques où vous avez généralement une autocorrélation.
la source
C'est vraiment un commentaire mais dépasse la limite permise donc je la poste comme une quasi-réponse car elle suggère la bonne façon d'analyser les données de séries chronologiques. .
Le fait bien connu mais souvent ignoré ici et ailleurs est que l'ACF / PACF théorique qui est utilisé pour formuler un modèle provisoire ARIMA prémisse sans impulsions / changements de niveau / impulsions saisonnières / tendances de l'heure locale. De plus, il présente des paramètres constants et une variance d'erreur constante dans le temps. Dans ce cas, la 21e observation (valeur = 158) est facilement signalée comme une valeur aberrante / impulsion et un ajustement suggéré de -80 donne une valeur modifiée de 78. L'ACF / PACF résultant de la série modifiée montre peu ou pas de preuve de structure stochastique (ARIMA). Dans ce cas, l'opération a été un succès mais le patient est décédé. L'échantillon ACF est basé sur la covariance / variance et une variance indûment gonflée / gonflée donne un biais vers le bas à l'ACF. Le professeur Keith Ord l'a appelé une fois «l'effet Alice au pays des merveilles»
la source
Comme l'a souligné Stephan Kolassa, il n'y a pas beaucoup de structure dans vos données. Les fonctions d'autocorrélation ne suggèrent pas de structure ARMA (voir
acf(sales)
,pacf(sales)
) etforecast::auto.arima
ne choisissent aucun ordre AR ou MA.Néanmoins, notez que le zéro de normalité dans les résidus est rejeté au niveau de signification de 5%.
Remarque:
JarqueBera.test
basé sur la fonctionjarque.bera.test
disponible dans le packagetseries
.L'inclusion de la valeur aberrante additive à l'observation 21 qui est détectée avec
tsoutliers
rend la normalité dans les résidus. Ainsi, l'estimation de l'ordonnée à l'origine et la prévision ne sont pas affectées par l'observation périphérique.la source