introduction
Je vise à prévoir les taux de croissance annuels pour un certain nombre d’indicateurs macroéconomiques (notons un par ). L'une des tâches consiste à tester les performances de prévision des modèles de séries chronologiques rivaux avec et sans variables exogènes (, une matrice). La liste des modèles concurrents comprend:
- Modèle AR (I) MA (il est peu probable que les taux de croissance annuels aient une "unité Roo", bien que cette dernière soit supposée ou testée)
- modèle de régression linéaire avec erreurs ARMA
- modèle de variable dépendante décalée (modèle autorégressif avec variables exogènes)
- modèle de régression linéaire
Où est supposé être un processus iid à fort bruit blanc, à variance constante moyenne nulle; et sont autorégressifs (d'ordre ) et moyenne mobile (de l'ordre ) polynômes avec - un opérateur de rétrogradation (décalage).
Notez que l'objectif principal et le seul est la prévision des performances, donc toutes les «bonnes» propriétés des estimations de paramètres sont de préoccupation secondaire. Tout ce dont j'ai besoin est de tester le prévisionniste le plus parcimonieux et le plus robuste aux conditions de départ. La décision sera prise avec l'une des accuracy()
options, mais je dois d'abord obtenir le matériel pour la comparaison.
Les modèles 1. et 2. sont estimés par la méthode d'estimation par auto.arima()
défaut "CSS-ML"
. Les modèles 3. et 4. sont estimés par les moindres carrés ordinaires ( lm()
). est à propos trimestres.
Approches essayées jusqu'à présent
Pour faire les résidus de cric-couteau, la première approche dénotée par «roulement» a été mise en œuvre. En partant d’un sous-échantillon de données chronologiques potentiellement important, les paramètres sont estimés etla prévision est faite par la predict()
fonction (EDIT: c'est la même suggestion que dans la première partie de la réponse de Rob à la deuxième question). Après cela, un point est ajouté et les étapes d'estimation \ prédiction sont répétées.
Un point faible de ces expériences est que le nombre de ticks de temps (taille d'échantillon) utilisés pour estimer les paramètres est différent. Alors que je voudrais tester la robustesse des conditions de départ, garder la taille de l'échantillon pour l'estimation fixe.
Gardant cela à l'esprit, j'ai essayé de définir plusieurs valeurs suivantes (EDIT: pour l'intervalle ) dans étant des valeurs manquantes (NA). Dans les modèles 2.-4. cela implique également de supprimer les lignes suivantes correspondantes dans la matrice de données. La prévision pour 3. et 4. est simple (la même chose predict()
avec omisles lignes de données fonctionnent bien). Toutes mes préoccupations concernent les modèles 1. et 2.
Avec juste l'AR () les prédictions se font en partie de façon séquentielle . Mais avec la présence de MA () on ne pouvait pas (?) utiliser directement les paramètres estimés. Du chapitre 3.3 de Brockwell et Davis "Introduction aux séries chronologiques et aux prévisions", il s'ensuit que l'on a besoin d'un algorithme d'innovation pour estimerdu système spécifique d'équations qui implique des paramètres moyens autorégressifs et mobiles estimés. EDIT: ces les paramètres sont utilisés pour faire la prédiction ARMA, pas les paramètres initialement estimés . On remarque cependant dans le même chapitre que approches asymptotiques si le processus est inversible. Il n'est pas évident que 30 à 40 points suffisent pour que le résultat asymptotique soit utilisé même s'il est inversible.
Remarques: je ne veux pas restreindre à zéro, car je ne le fais pas dans de véritables prévisions hors échantillon. EDIT: pas non plus qu'il ne s'agit pas d'un problème d'imputation de valeur manquante, mais d'une expérience de prévision, que la trajectoire n'est pas censée combler deux sous-échantillons en imputant les valeurs manquantes.
Des questions
- Fonctionne
auto.arima()
correctement avec la présence de valeurs manquantes à l'intérieur de l'échantillon? [Déjà répondu par Rob.] - (La partie réellement cruciale de ce post) Comment prévoir correctement (PAS imputer) ces points manqués du modèle ARMA lorsque les deux et ? (J'espère qu'il existe des moyens déjà mis en œuvre en langage R, mais il me manque simplement quelque chose.)
EDIT: puisque les paramètres des pièces ARMA sont estimés correctement, pourrais-je réorganiser légalement l'objet arima pour inclure les paramètres estimés et les données uniquement pour le premier sous-échantillon, puis utiliser une fonction de prédiction?
EDIT2: J'ai essayé de modifier la mod
structure estimée - la prévision résultante predict.Arima
est identique (différences de double précision) à la prévision où j'utilise les coefficients estimés MA et AR prédisant directement comme , sans KalmanForecast()
. Cela était attendu car la représentation de l'espace d'état est fournie avec la même estimation, ne pas . La seule question qui reste est donc la différence entre et significatif pour influencer les prévisions ponctuelles? J'espère que la réponse est négative.
itsmr
ou augmenter l'interception pour Arima
assurer que les résidus sont à moyenne nulle.
itsmr
bibliothèque, la mise en œuvre de la prévision du processus ARMA pour les modèles 1. et 2. nécessite laarima
suggère que le résidu n'est pas de moyenne nulle, c'est-à-direArima
objet estimé , avant de faire la prévision en jack-knives? Dois-je faire de même pour les prédictions ordinaires deArima
?