Comment ajuster un modèle pour une série chronologique contenant des valeurs aberrantes

9

J'ai ajusté le modèle ARIMA (5,1,2) en utilisant la auto.arima()fonction dans R et en regardant l'ordre, nous pouvons dire que ce n'est pas le meilleur modèle à prévoir. Si des valeurs aberrantes existent dans la série de données, quelle est la méthode pour adapter un modèle à ces données?

Anthony
la source
Avez-vous des données / théorie sur les points aberrants? Vous ne pouvez pas simplement supposer que les points "éloignés" sont des valeurs aberrantes, mais si vous savez que quelque chose de spécial s'est produit à une date particulière et que cet événement affecterait vos données, vous pouvez ajouter une variable indicatrice à votre modèle pour cette date. Voir le commentaire d'IrishStat ci-dessous.
Wayne
Si quelque chose de spécial s'est produit sur 1 ou 2 semaines au cours de cette période et affecte le modèle, alors le modèle peut être incorrect. comme il n'y a pas d'autre raison que la variation saisonnière, j'ai supposé que les valeurs aberrantes sont la cause qui affecte le modèle.
Anthony

Réponses:

7

Michael Chernick vous indique la bonne direction. Je regarderais également le travail de Ruey Tsay comme celui ajouté à ce corpus de connaissances. Voir plus ici .

Vous ne pouvez pas rivaliser avec les algorithmes informatiques automatisés d'aujourd'hui. Ils examinent de nombreuses façons d'aborder les séries chronologiques que vous n'avez pas prises en compte et souvent non documentées dans un document ou un livre. Quand on demande comment faire une ANOVA, une réponse précise peut être attendue lors de la comparaison avec différents algorithmes. Quand on pose la question comment faire la reconnaissance de formes, de nombreuses réponses sont possibles car l'heuristique est impliquée. Votre question implique l'utilisation d'heuristiques.

La meilleure façon d'adapter un modèle ARIMA, s'il existe des valeurs aberrantes dans les données, est d'évaluer les états de la nature possibles et de sélectionner l'approche jugée optimale pour un ensemble de données particulier. Un état de la nature possible est que le processus ARIMA est la principale source de variation expliquée. Dans ce cas, on «identifierait provisoirement» le processus ARIMA via la fonction acf / pacf, puis examinerait les résidus pour d'éventuelles valeurs aberrantes. Les valeurs aberrantes peuvent être des impulsions, c'est-à-dire des événements ponctuels OU des impulsions saisonnières qui sont mises en évidence par des valeurs aberrantes systématiques à une certaine fréquence (par exemple, 12 pour les données mensuelles). Un troisième type de valeur aberrante est celui où l'on a un ensemble d'impulsions contiguës, chacune ayant le même signe et la même ampleur, cela s'appelle un décalage de pas ou de niveau. Après avoir examiné les résidus du processus ARIMA provisoire, on peut alors provisoirement ajouter la structure déterministe identifiée empiriquement pour créer un modèle combiné provisoire. De plus, si la principale source de variation est l'un des 4 types ou "valeurs aberrantes", il serait préférable de les identifier ab initio (d'abord) puis d'utiliser les résidus de ce "modèle de régression" pour identifier la structure stochastique (ARIMA) . Maintenant, ces deux stratégies alternatives deviennent un peu plus compliquées quand on a un "problème" où les paramètres ARIMA changent avec le temps ou la variance d'erreur change avec le temps en raison d'un certain nombre de causes possibles, peut-être le besoin de moindres carrés pondérés ou d'une transformation de puissance comme les journaux / réciproques, etc. Une autre complication / opportunité est de savoir comment et quand former la contribution des séries de prédicteurs suggérées par l'utilisateur pour former un modèle intégré de manière transparente incorporant la mémoire, les causes et les séries factices identifiées empiriquement. Ce problème est encore aggravé lorsque l'on a des séries de tendances mieux modélisées avec des séries d'indicateurs de la formeOu 1 , 2 , 3 , 4 , 5 , . . . n et combinaisons de séries de changement de niveau comme 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 10,0,0,0,1,2,3,4,...1,2,3,4,5,...n0,0,0,0,0,0,1,1,1,1,1. Vous voudrez peut-être essayer d'écrire de telles procédures en R, mais la vie est courte. Je serais heureux de résoudre votre problème et de montrer dans ce cas comment fonctionne la procédure, veuillez poster les données ou les envoyer à [email protected]


Commentaire supplémentaire après réception / analyse des données / données quotidiennes pour un taux de change / 18 = 765 valeurs à partir du 1/1/2007

entrez la description de l'image ici

Les données avaient une acf de:

entrez la description de l'image ici

Lors de l'identification d'un modèle d'arma de la forme et d'un certain nombre de valeurs aberrantes, l'acf des résidus indique un caractère aléatoire car les valeurs acf sont très petites. AUTOBOX a identifié un certain nombre de valeurs aberrantes:(1,1,0)(0,0,0)

entrez la description de l'image ici

Le modèle final:

entrez la description de l'image ici

inclus la nécessité d'une augmentation de stabilisation de la variance à la TSAY où les changements de variance dans les résidus ont été identifiés et incorporés. Le problème que vous aviez avec votre exécution automatique était que la procédure que vous utilisiez, comme un comptable, croit les données plutôt que de contester les données via la détection d'intervention (alias, détection des valeurs aberrantes). J'ai posté une analyse complète ici .

entrez la description de l'image ici

IrishStat
la source
@IrishStat: À l'avenir, pouvez-vous utiliser les options de formatage? (la clé correcte pour insérer des liens est ctrl-l, pas ctrl-c).
user603
@ user603 J'utilise simplement l'option ajouter un graphique. Je ne sais pas ce que vous entendez par ctrl-l ou cntrl-c. Peut-être pourriez-vous m'aider, contactez-moi s'il vous plaît à dave / @ / autobox.com et peut-être vous pouvez marcher / me parler à travers cela.
IrishStat
@IrishStat: jetez un œil ici .
user603
@ user603 OK mais je ne sais toujours pas ce que vous entendez par ctrl-l et cntrl-c. J'utilisais le transfert d'image où je peux insérer une image. Si je tape cntrl-g, j'obtiens simplement un écran contextuel vide.
IrishStat
@IrishStat: ça va - la méthode du lien est encore meilleure que ctrl-l :). PS: mon objectif était de vous aider à rendre vos réponses / commentaires plus attrayants, cosmétiquement, en masquant ces longs liens qui coupent le flux du texte. Le lien vous explique comment y parvenir.
user603
6

Il n'y a pas prêt à l' emploi robuste contrepartie à la fonction arima dans R (encore) ; le cas échéant, il sera répertorié ici . Peut-être qu'une alternative est de réduire les observations qui sont éloignées par rapport à une règle de détection de valeurs aberrantes univariée simple, mais je ne vois pas non plus de packages prêts à utiliser pour exécuter une régression ARMA pondérée. Une autre alternative possible serait alors de Winsoriser les points périphériques:

#parameters
para     <- list(ar=c(0.6,-0.48), ma=c(-0.22,0.24))
#original series
y1 <- y0 <- arima.sim(n=100, para, sd=sqrt(0.1796)) 
#outliers
out      <- sample(1:100, 20)               
#contaminated series
y1[out]  <- rnorm(20, 10, 1)                
plot( y1, type="l")
lines(y0, col="red")

exemple de contamination aléatoire

#winsorized series
y2      <- rep(NA, length(y1))
a1      <- (y1-median(y1)) / mad(y1)
a2      <- which(abs(a1)>3)
y2[-a2] <- y1[-a2]
for(i in 2:length(y2)){
   if(is.na(y2[i])){ y2[i] <- y2[i-1] }
}       

série nettoyée

user603
la source
Une procédure basée sur des règles fonctionne pour cette série, mais après avoir examiné les données de séries chronologiques pendant près de 42 ans, cela peut ne pas fonctionner en général.Pensez à une série simple qui a un processus auto-projectif, par exemple 1,9,1,9,1,9,5,9 1,9,1,9 où la 7e valeur est exceptionnelle OU en général une série qui a une structure autoprojective forte d'une forme inconnue OU une série qui a 1,2,1,1,1,2,1,1,1, 2,1,20,1,2,1,2,1,1,1,2,1,2,2,19,2,1,1,2,1,2,1,1,2,2, 2,21 une série mensuelle qui n'a pas d'impulsions MAIS a un MANNEQUIN SAISONNIER non spécifié. Détecter 12, 24 et 36 comme MAUVAIS serait jeter le bébé avec l'eau du bain.
IrishStat
Tout ce que vous dites est vrai, c'est-à-dire que vous fournissiez un pansement qui aiderait à la plaie si 1) la série était stationnaire, ce qui suppose entre autres aucun changement de niveau, aucune tendance et al, aucune structure ARIMA; et 2) la série doit être non saisonnière ou a déjà été désaisonnalisée; . D'après mon expérience, de telles hypothèses ne tiennent pratiquement pas et les utilisateurs ignorent vos mises en garde lorsqu'ils tentent de lutter avec des séries chronologiques présentant des "imperfections". Mes commentaires ici ne sont pas censés être argumentatifs mais plutôt éclairants (pour certains!)
IrishStat
@IrishStat le PO a mis à jour sa question et a déclaré qu'il n'y a pas de saisonnalité.
user603
Êtes-vous Christophe?.
IrishStat
2

Il existe une abondante littérature sur les modèles de séries chronologiques robustes. Martin et Yohai sont parmi les principaux contributeurs. Leur travail remonte aux années 1980. J'ai moi-même fait un travail sur la détection des valeurs aberrantes dans les séries chronologiques, mais Martin était vraiment l'un des nombreux contributeurs à la fois à la détection des valeurs aberrantes et à l'estimation des paramètres en présence de valeurs aberrantes ou de résidus à queue lourde dans les séries chronologiques.

  • Voici un lien vers un article d'enquête sur le sujet avec une liste de plus de 100 références. Il comprend même mon papier JASA de 1982.
  • Voici une thèse de doctorat de 2000 (pdf) qui couvre la théorie, les méthodes et les applications de l'analyse robuste de séries chronologiques et comprend une belle bibliographie.
  • Voici un lien sur les logiciels qui comprend des outils de séries chronologiques robustes.
Michael R. Chernick
la source
Quel est le logiciel utilisé pour une prévision robuste? Convient-il aux séries univariées?
Anthony
@Anthony C'est une très bonne question. Je n'ai fait aucune modélisation robuste de séries chronologiques. Martin creusé a fondé la société appelée Insightful (ils avaient en fait plusieurs nominations) qui commercialisait SPlus. Je suis à peu près sûr qu'il a inclus des méthides robustes dans le logiciel SPlus. Il y a probablement maintenant une version en R. Je vais vérifier. Voici un article Wikipédia comprenant l'histoire de SPlus. en.wikipedia.org/wiki/S-PLUS
Michael R. Chernick
@Anthony Voici une source fournie par Rob Hyndman sur ce qui est disponible dans R sur l'analyse des séries chronologiques. Il comprend ce qui se trouve dans CRAN et couvre une grande variété de méthodes, y compris un filtrage robuste. cran.r-project.org/web/views/TimeSeries.html
Michael R. Chernick
2

Quel est le but de votre modèle pour prévoir ou analyser l'historique? si ce n'est pas pour la prévision, et vous savez que ce sont les valeurs aberrantes, ajoutez simplement la variable fictive, qui est 1 à ces dates et 0 à d'autres dates. De cette façon, les coefficients fictifs s'occuperont des valeurs aberrantes et vous pourrez interpréter les autres coefficients du modèle.

s'il s'agit de prévisions, vous devez vous poser deux questions: ces valeurs aberrantes se reproduiront-elles? si c'est le cas, dois-je en rendre compte?

Par exemple, disons que vos séries de données ont des valeurs aberrantes lorsque les frères Lehman sont tombés. c'est un événement que vous n'avez aucun moyen de prédire, évidemment, mais vous ne pouvez pas simplement l'ignorer parce que quelque chose comme cela se produira à l'avenir. si vous lancez le mannequin pour les valeurs aberrantes, vous supprimez efficacement l'incertitude de cet événement de la variance d'erreur. vos prévisions sous-estimeront le risque de queue - ce n'est peut-être pas une bonne chose pour la gestion des risques. cependant, si vous devez produire la prévision de référence des ventes, le mannequin fonctionnera, car vous n'êtes pas intéressé par la queue, vous êtes intéressé par les scénarios les plus probables - vous n'avez donc pas à tenir compte de l'événement imprévisible pour Cet objectif.

Par conséquent, l'objectif de votre modèle influe sur la façon dont vous traitez les valeurs aberrantes.

Aksakal
la source