Traitement des données manquantes dans un modèle de lissage exponentiel

14

Il ne semble pas y avoir de méthode standard pour traiter les données manquantes dans le contexte de la famille de modèles de lissage exponentiel. En particulier, l'implémentation R appelée ets dans le package de prévision semble ne prendre que la sous-séquence la plus longue sans données manquantes, et le livre "Forecasting with Exponential Smoothing" de Hyndman et al. ne semble pas du tout parler de données manquantes.

Je voudrais faire un peu plus, si mes utilisateurs me le demandent explicitement (et si les données manquantes ne se produisent pas trop près les unes des autres ou dans trop de périodes qui sont exactement à une saison d'intervalle). En particulier, ce que j'ai à l'esprit est le suivant. Lors de la simulation, chaque fois que je rencontrais une valeur manquante , je substituais la prévision ponctuelle actuelle à , de sorte que . Par exemple, cela rendrait le point de données non pris en compte pour le processus d'optimisation des paramètres.yty~tytεt=0

Une fois que j'ai un ajustement raisonnable pour les paramètres, je peux estimer l'écart-type des erreurs (supposé normal avec la moyenne ) et vérifier que l'utilisation des valeurs de générées à partir de cette distribution ne diminue pas la probabilité d'un facteur important. J'utiliserais également ces valeurs pour la prévision (en utilisant la simulation).0ϵt

Y a-t-il des pièges connus avec cette méthode?

Erik P.
la source
Avez-vous envisagé d'utiliser un processus gaussien avec un noyau de covariance exponentielle? Cela semble être un moyen naturel de gérer les données manquantes et de dériver des intervalles de confiance. R a le package GPFit que vous pouvez examiner.
LE Rogerson

Réponses:

2

Votre approche est logique. Un logiciel commercial auquel j'étais associé pendant quelques années a fait exactement cela.

Votre contour s'applique au lissage exponentiel simple (SES), mais vous pouvez bien sûr appliquer le même traitement aux composants de tendance ou saisonniers. Pour les saisonniers, il faudrait remonter un cycle saisonnier complet, tout comme pour la mise à jour.

Une autre alternative serait bien sûr d'interpoler simplement les valeurs manquantes. Il s'agit d'une option dans les versions plus récentes de ets(..., na.action="na.interp").

D'après le peu que je connais des modèles d'espace d'états, il ne devrait pas être trop difficile de simplement traiter les données manquantes comme non observées. Je ne sais pas pourquoi cela n'est pas implémenté dans le forecastpackage. Une recherche rapide sur le blog de Rob Hyndman n'a rien donné d'utile.

Stephan Kolassa
la source