Je voudrais combiner les prévisions et les rétrodiffusions (c'est-à-dire les valeurs passées prévues) d'un ensemble de données de séries chronologiques en une seule série temporelle en minimisant l'erreur quadratique moyenne de prédiction.
Disons que j'ai des séries chronologiques de 2001-2010 avec un écart pour l'année 2007. J'ai pu prévoir 2007 en utilisant les données de 2001-2007 (ligne rouge - appelée ) et effectuer une rétrodiffusion en utilisant les données de 2008-2009 (clair ligne bleue - appelez-la ).
Je voudrais combiner les points de données de et en un point de données imputé Y_i pour chaque mois. Idéalement, je voudrais obtenir le poids tel qu'il minimise l'erreur de prédiction quadratique moyenne (MSPE) de . Si cela n'est pas possible, comment pourrais-je simplement trouver la moyenne entre les deux points de données des séries chronologiques?
Comme exemple rapide:
tt_f <- ts(1:12, start = 2007, freq = 12)
tt_b <- ts(10:21, start=2007, freq=12)
tt_f
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2007 1 2 3 4 5 6 7 8 9 10 11 12
tt_b
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2007 10 11 12 13 14 15 16 17 18 19 20 21
Je voudrais obtenir (juste montrer la moyenne ... Minimiser idéalement le MSPE)
tt_i
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2007 5.5 6.5 7.5 8.5 9.5 10.5 11.5 12.5 13.5 14.5 15.5 16.5
la source
predict
fonction du package de prévision. Cependant, je pense que je vais utiliser le modèle de prévision HoltWinters pour prévoir et rétrograder. J'ai des séries chronologiques avec peu <50 comptes, et j'ai essayé la prévision de régression de Poisson - mais pour une raison quelconque, des prédictions très faibles.NA
valeurs? Il semble que rendre la période d'apprentissage MSPE pourrait être trompeur car les sous-périodes sont bien décrites par des tendances linéaires, mais dans la période manquée, une baisse quelque part se produit, et cela pourrait en fait être n'importe quel point. À noter également que les prévisions étant colinéaires, leur moyenne introduira deux ruptures structurelles au lieu d'une apparente.Réponses:
En supposant que vous ayez les erreurs de prédiction au carré pour les prévisions et le backcast individuellement, je recommanderais ceci: Soit w un vecteur de longueur 12, soit m le mois qui vous intéresse.
Maintenant, w est le poids de la prévision et 1-w est le poids du backcast.
la source
s/w/m/
Au moins dans les versions multiplicatives, les procédures de prévision «ad hoc» comme Holt-Winters reposent sur des modèles stochastiques sans algorithmes FI simples car ils ne peuvent pas être mis sous forme SS. La formule de lissage peut probablement être approximée à l'aide du modèle SS, mais il est beaucoup plus simple d'utiliser des modèles de séries chronologiques structurelles avec des transformations logarithmiques. Les fonctions «KalmanSmooth», «tsSmooth» et «StructTS» du package de statistiques R peuvent faire l'affaire. Vous devriez jeter un œil aux livres de Harvey ou de Durbin et Koopman cités dans les pages d'aide de R. L'algorithme de lissage peut fournir une variance conditionnelle pour le estiméYt et peut être utilisé pour construire des intervalles de lissage, qui ont généralement tendance à être plus grands au milieu de l'écart. Notez cependant que l'estimation des modèles structurels peut être difficile.
la source
Je trouve intéressante votre approche suggérée, celle de prendre les moyens des lancers avant et arrière.
Une chose qui mérite d'être soulignée est que dans tout système présentant une structure chaotique, les prévisions sont susceptibles d'être plus précises sur des périodes plus courtes. Ce n'est pas le cas pour tous les systèmes, par exemple un pendule amorti pourrait être modélisé par une fonction avec la mauvaise période, auquel cas toutes les prévisions à moyen terme sont susceptibles d'être fausses, tandis que celles à long terme vont toutes l'être très précis, car le système converge vers zéro. Mais il me semble, d'après le graphique de la question, que cela pourrait être une hypothèse raisonnable à faire ici.
Cela implique que nous pourrions être mieux en nous appuyant davantage sur les données prévisionnelles pour la première partie de la période manquante, et davantage sur les données rétrospectives pour la dernière partie. La manière la plus simple de le faire serait d'utiliser un poids décroissant linéairement pour la prévision, et l'inverse pour le back-cast:
Cela donne un peu de poids au backcast sur le premier élément. Vous pouvez également utiliser n-1, sans les indices à la fin, si vous souhaitez utiliser uniquement la valeur de prévision sur le premier point interpolé.
Je n'ai pas vos données, alors essayons ceci sur le jeu de données AirPassenger dans R. Je vais juste supprimer une période de deux ans près du centre:
Et il y a votre interpolation.
Bien sûr, ce n'est pas parfait. Je suppose que cela est dû au fait que les modèles de la première partie des données sont différents de ceux de la dernière partie (le pic de juillet à août n'est pas si fort les années précédentes). Mais comme vous pouvez le voir sur l'image, c'est clairement mieux que les prévisions ou la coulée arrière seules. J'imagine que vos données peuvent obtenir des résultats légèrement moins fiables, car il n'y a pas une si forte variation saisonnière.
Je suppose que vous pourriez essayer cela, y compris les intervalles de confiance, mais je ne suis pas sûr de la validité de le faire aussi simplement que cela.
la source