auto.arima ne reconnaît pas le modèle saisonnier

8

J'ai un ensemble de données météorologiques quotidiennes, qui a, sans surprise, un effet saisonnier très fort.

entrez la description de l'image ici

J'ai adapté un modèle ARIMA à cet ensemble de données en utilisant la fonction auto.arima du package de prévision. À ma grande surprise, la fonction n'applique aucune opération saisonnière - différenciation saisonnière, composantes saisonnières ar ou ma. Voici le modèle qu'il a estimé:

library(forecast)
data<-ts(data,frequency=365)
auto.arima(Berlin)

Series: data
ARIMA(3,0,1) with non-zero mean 

Coefficients:
         ar1      ar2     ar3      ma1  intercept
      1.7722  -0.9166  0.1412  -0.8487   283.0378
s.e.  0.0260   0.0326  0.0177   0.0214     1.7990

sigma^2 estimated as 5.56:  log likelihood=-8313.74
AIC=16639.49   AICc=16639.51   BIC=16676.7

Et les prévisions utilisant ce modèle ne sont pas vraiment satisfaisantes non plus. Voici l'intrigue de la prévision: entrez la description de l'image ici

Quelqu'un peut-il me donner une idée de ce qui ne va pas ici?

DatamineR
la source
Pouvez-vous publier le code (ou un exemple similaire) que vous avez utilisé pour obtenir la sortie?
rbatt
Bonjour rbat, j'ai posté le code que j'ai utilisé. Les données brutes sont enregistrées sous «données». Je l'ai d'abord converti en objet ts
DatamineR
Votre coefficient MA (1) (-.84) est étrangement proche de -1 la limite d'inversibilité suggérant (pour moi) que vous avez imposé une mauvaise spécification de modèle aux données sans méfiance. Veuillez fournir un lien vers les données brutes réelles et je vais essayer de vous aider à utiliser une approche plus sophistiquée que celle à laquelle vous avez actuellement accès. Cela pourrait éclairer votre solution requise.
IrishStat
Merci IrishStat pour l'offre! Je suis juste confus pourquoi 'auto.arima' n'évalue pas ici un modèle saisonnier, bien que la saisonnalité soit évidente. Si je devais estimer un modèle ici, je supprimerais probablement la saisonnalité avec la méthode de Fourier ou simplement la différence saisonnière (dans ce cas avec lag = 365) les données. Mais «auto.arima» ne devrait-il pas faire la différence appropriée? J'ai essayé de joindre les données, mais je n'ai trouvé aucune possibilité de le faire. Comment insérer les données dans la question?
DatamineR
Si vous le souhaitez, vous pouvez m'envoyer un e-mail. Joignez un fichier Excel avec des informations sur la date de début et je le posterai au groupe. Veuillez consulter mes coordonnées pour obtenir mon adresse e-mail.
IrishStat

Réponses:

11

R ne s'adaptera pas à un modèle ARIMA avec une saisonnalité supérieure à 350. Voir http://robjhyndman.com/hyndsight/longseasonality/ pour une discussion de ce problème. La solution consiste à utiliser les termes de Fourier pour la saisonnalité et les erreurs ARMA pour la dynamique à court terme.

Rob Hyndman
la source
7

La solution à votre problème est, comme le souligne Rob, de combiner les effets déterministes (semaine de l'année) et les effets stochastiques (structure ARIMA) tout en isolant les jours inhabituels et en détectant la présence possible d'un ou plusieurs changements de niveau et / ou d'un ou plusieurs locaux tendances temporelles. AUTOBOX, le logiciel utilisé pour l'analyse a été en partie développé par moi pour fournir automatiquement une modélisation robuste pour des ensembles de données comme celui-ci.

J'ai placé vos données sur http://www.autobox.com/weather/weather.txt .

L'acf des données d'origine est entrez la description de l'image icice qui conduit à une sélection automatique du modèle du formulaire entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici. Les statistiques du modèle sont entrez la description de l'image iciavec un tracé résiduel de entrez la description de l'image iciLe tracé des prévisions pour les 60 prochains jours est présenté ici. entrez la description de l'image ici Le graphique Réel / Ajustement / Prévision est affiché ici.entrez la description de l'image ici

Il pourrait être intéressant pour d'autres de suivre les conseils du Prof. Hyndaman et de rapporter leur modèle final avec des vérifications dégoûtées concernant les diagnostics résiduels et les tests de paramètres significatifs.

Je suis personnellement mal à l'aise avec la suggestion d'effectuer d'abord une analyse de Fourier (éventuellement / probablement affectée par des anomalies), puis de faire de l'ARIMA sur les résidus est inacceptable car ce n'est pas une solution simultanée conduisant à 1 équation mais plutôt une séquence présomptive. Mon équation utilise la semaine du mois et comprenait également un AR (1) et des remèdes pour les points de données inhabituels.

Tous les logiciels ont des limites et il est bon de les connaître. Encore une fois, je réitère pourquoi quelqu'un n'essaie pas de mettre en œuvre les suggestions de Rob et de montrer les résultats complets.

IrishStat
la source