Comment faire des prévisions pour une série chronologique?

9

Je ne connais pas très bien l'analyse des données de séries chronologiques. Cependant, j'ai ce que je pense être une tâche de prédiction simple à résoudre.

J'ai environ cinq ans de données issues d'un processus de génération commun. Chaque année représente une fonction à augmentation monotone avec une composante non linéaire. J'ai des comptes pour chaque semaine sur un cycle de 40 semaines pour chaque année. Le processus démarre, la fonction commence à zéro, augmente assez rapidement sur la première moitié de la fonction, ralentit sur la seconde moitié avant de se stabiliser au cours des cinq dernières semaines. Le processus est cohérent sur plusieurs années avec de petites différences de taux de variation et de volume entre les segments d'une année à l'autre.

y1={0,Nt1,Nt2,...Nt39,Nt40}

y5={0,Nt1,Nt2,...Nt39,Nt40}

égal au compte au temps x.Ntx

Le but est de prendre à t x (ou mieux de t 0 à t x , ou la pente jusqu'à ce point) et de prédire le N à t 40 . Par exemple, si N t 10 est 5000, quelle est la valeur attendue de N t 40 pour cette année. La question est donc de savoir comment modéliser ces données? C'est assez facile à résumer et à visualiser. Mais j'aimerais un modèle pour faciliter les prédictions et incorporer une mesure d'erreur.Ntxt0txNt40Nt10Nt40

Brett
la source
2
Êtes-vous sûr de vouloir vous limiter si sévèrement? Si ce problème a une application pratique, au moment où vous connaissez le décompte au temps x, vous connaissez également tous les décomptes précédents. Pourquoi ne pas les utiliser pour aider à la prédiction?
whuber
En effet. Tu as raison. Merci d'avoir fait remarquer cela.
Brett

Réponses:

6

Comme l'a suggéré Andy W, l'approche la plus simple consiste probablement à utiliser un modèle de séries chronologiques univariées saisonnières. Si vous utilisez R, essayez l'un auto.arima()ou l' autre ets()du package de prévisions .

L'un ou l'autre devrait fonctionner correctement, mais une méthode de série chronologique générale n'utilise pas toutes les informations fournies. En particulier, il semble que vous connaissiez la forme de la courbe chaque année, il serait donc préférable d'utiliser ces informations en modélisant les données de chaque année en conséquence. Ce qui suit est une suggestion qui essaie d'incorporer ces informations.

ft,j=rteat(jbt)1+eat(jbt)
tjatbtrtrtatbtft,j=rt/2btbtatbt

a1,,anb1,,bnr1,,rnn=5jf^(6,j)a6b6r6

(40t)/36(t4)/36respectivement. C'est très ponctuel, et je suis sûr que cela peut être rendu plus objectif en le plaçant dans le contexte d'un modèle stochastique plus large. Néanmoins, cela fonctionnera probablement bien pour vos besoins.

Rob Hyndman
la source
4

Ce que vous demandez, c'est essentiellement ce que fait la modélisation Box Jenkins ARIMA (vos cycles annuels seraient appelés composants saisonniers). Outre la recherche de documents par vous-même, je suggère

Analyse de séries chronologiques appliquées pour les sciences sociales 1980 par R McCleary; RA Hay; EE Meidinger; D McDowall

Bien que je puisse penser à des raisons raisonnables pour lesquelles vous voulez prévoir plus loin dans le futur (et donc évaluer l'erreur en le faisant), c'est souvent très difficile dans la pratique. Si vous avez des composantes saisonnières très fortes, ce sera plus faisable. Sinon, vos estimations atteindront probablement un équilibre dans relativement peu de périodes futures.

Si vous prévoyez d'utiliser R pour s'adapter à vos modèles, vous devriez probablement consulter le site Web de Rob Hyndman (j'espère qu'il vous donnera de meilleurs conseils que moi!)

Andy W
la source
-2

vous avez 5 ans de données et 40 observations par an. Pourquoi ne les affichez-vous pas sur le Web et ne nous permettez pas de répondre à cette question au sol zéro plutôt que de philosopher à 500 miles de haut. J'attends avec impatience les chiffres. Nous avons vu des données comme celle-ci, par exemple le nombre de clients qui échangent leur semaine de partage de temps sur une base hebdomadaire. La série commence chaque année à zéro et s'accumule jusqu'à une valeur limite.

IrishStat
la source
1
-1 Cela ressemble plus à une auto-publicité qu'à une réponse utile.
whuber
@whuber: Pas intentionnel. Juste une réflexion sur un "problème collant" similaire que j'ai rencontré.
IrishStat
Cela ferait alors un commentaire intéressant. Les commentaires sont de bons moyens d'injecter une partie de cette précieuse expérience que nous sommes ravis que vous partagiez avec nous. Les réponses doivent être réservées aux réponses réelles à la question: elles seront votées, archivées, consultables, etc., et doivent donc être plus directement pertinentes, avoir une valeur permanente et pouvoir mieux résister aux critiques. (Bien sûr, c'est une idéalisation, mais c'est ce que nous recherchons. :-)
whuber
@whuber: Vous enseignez! J'apprends ! Je réserverai des commentaires pour la "zone de commentaires". Pour réitérer, il n'y avait absolument aucune intention de promouvoir quoi que ce soit ou un quelconque logiciel / conseil particulier, juste une volonté bien intentionnée de partager des expériences avec d'autres personnes du village. Je suis sûr que le PO a trouvé mes commentaires utiles. Que dites-vous Brett?
IrishStat