J'ai une formation novice dans les séries chronologiques (certaines estimations / prévisions ARIMA) et je suis confronté à un problème que je ne comprends pas complètement. Toute aide serait grandement appréciée.
J'analyse plusieurs séries chronologiques, toutes sur le même intervalle de temps et toutes de la même fréquence, décrivant toutes un type de données similaire. Chaque série n'est qu'une variable, il n'y a aucun autre prédicteur correspondant que je regarde.
On m'a demandé d'estimer un modèle unique qui décrit TOUTES les séries - par exemple, imaginez que je pourrais trouver un ARIMA (p, d, q) avec les mêmes ordres, coefficients, etc. qui pourrait s'adapter à toutes les séries. Mon superviseur ne veut pas que j'évalue séparément chaque série, ni qu'il fasse une sorte de modèle VAR avec des dépendances entre les séries.
Ma question est: comment pourrais-je même appeler un tel modèle, et comment pourrais-je procéder pour l'estimer / le prévoir? S'il vous est plus facile d'utiliser des exemples de code, je parle à la fois SAS et R.
la source
Une façon de le faire consiste à construire une longue série chronologique avec toutes vos données et avec des séquences de valeurs manquantes entre les séries pour les séparer. Par exemple, dans R, si vous avez trois séries (
x
,y
etz
) chacune de longueur 100 et de fréquence 12, vous pouvez les joindre comme suitNotez que le nombre de valeurs manquantes est choisi pour garantir que la période saisonnière est conservée. J'ai complété la dernière année avec 8 valeurs manquantes, puis ajouté quatre années manquantes (48 valeurs) avant la prochaine série. Cela devrait être suffisant pour garantir que les corrélations en série disparaissent entre les séries.
Ensuite, vous pouvez utiliser
auto.arima()
pour trouver le meilleur modèle:Enfin, vous pouvez appliquer le modèle combiné à chaque série séparément afin d'obtenir des prévisions:
la source
L'estimation d'un modèle unique pour plusieurs séries chronologiques est le domaine de l' économétrie des données de panel . Cependant, dans votre cas, sans variable explicative, la réponse @Rob Hyndman est probablement la meilleure solution. Cependant, s'il s'avère que les moyens des séries temporelles sont différents (testez-le, car dans ce cas, la méthode de @Rob Hyndman devrait échouer!), Mais la structure ARMA est la même, alors vous devrez utiliser Arellano-Bond (désolé wikipedia a pas de page dessus, alors recherchez-le sur google). Le modèle dans ce cas serait:
la source
Une alternative à l'approche de Rob Hyndman, pour faire une seule série de données, est de fusionner les données. Cela peut être approprié si vos séries chronologiques multiples représentent des lectures bruyantes d'un ensemble de machines enregistrant le même événement. (Si chaque série chronologique est à une échelle différente, vous devez d'abord normaliser les données.)
REMARQUE: vous ne vous retrouvez toujours qu'avec 28 lectures, juste moins de bruit, donc cela peut ne pas convenir à votre situation.
la source
J'examinerais les modèles de Markov cachés et les réseaux bayésiens dynamiques. Ils modélisent des données de séries chronologiques. Ils sont également formés en utilisant plusieurs instances de séries chronologiques, par exemple plusieurs séries chronologiques de tension artérielle de divers individus. Vous devriez trouver des packages en Python et R pour les construire. Vous devrez peut-être définir la structure de ces modèles.
la source
J'essaye de faire la même chose. Apparemment, il existe quelque chose appelé un modèle «Auto-régressif multivarié». J'y ai trouvé une référence, mais pas comment l'utiliser. Sur la base du document lié, je suppose qu'il a été mis en œuvre dans R.
http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Holmes~et~al.pdf
la source