Commentaires: Tout d' abord je voudrais dire un grand merci à l' auteur du nouveau tsoutliers paquet qui met en œuvre de Chen et Liu séries temporelles de détection des valeurs aberrantes qui a été publiée dans le Journal de l'American Statistical Association en 1993 dans le logiciel Open Source .
Le paquet détecte 5 types de valeurs aberrantes différents de manière itérative dans les données de séries chronologiques:
- Additif Outlier (AO)
- Innovation Outlier (IO)
- Décalage de niveau (LS)
- Changement temporaire (TC)
- Changement de niveau saisonnier (SLS)
Ce qui est encore plus génial, c’est que ce paquet implémente auto.arima à partir du paquet de prévisions, de sorte que la détection des valeurs éloignées est transparente. De plus, le paquet produit de beaux graphiques pour une meilleure compréhension des données de la série chronologique.
Voici mes questions:
J'ai essayé d'exécuter quelques exemples en utilisant ce paquet et cela a très bien fonctionné. Les valeurs aberrantes et le décalage de niveau sont intuitifs. Cependant, j'avais 2 questions concernant la gestion des valeurs aberrantes Temporary Change et Innovational, que je ne peux pas comprendre.
Exemple de modification temporaire des valeurs aberrantes:
Prenons l'exemple suivant:
library(tsoutliers)
library(expsmooth)
library(fma)
outlier.chicken <- tsoutliers::tso(chicken,types = c("AO","LS","TC"),maxit.iloop=10)
outlier.chicken
plot(outlier.chicken)
Le programme détecte à juste titre un changement de niveau et un changement temporaire à l’emplacement suivant.
Outliers:
type ind time coefhat tstat
1 LS 12 1935 37.14 3.153
2 TC 20 1943 36.38 3.350
Ci-dessous, l'intrigue et mes questions.
- Comment écrire le changement temporaire dans un format d'équation? (Le décalage de niveau peut facilement être écrit sous forme de variable binaire, à tout moment avant 1935 / Obs 12 est égal à 0 et à tout moment après 1935 et après est égal à 1.)
L'équation de modification temporaire dans le manuel du package et l'article est donnée comme suit:
- Ma deuxième question concerne les valeurs aberrantes d’innovation. Je n’ai jamais
rencontré d’aberrance d’innovation dans la pratique. tout exemple numérique ou exemple de cas serait très utile.
Edit: @Irishstat, la fonction tsoutliers fait un excellent travail pour identifier les valeurs éloignées et suggérer un modèle ARIMA approprié. En regardant l'ensemble de données Nile, voir ci-dessous l'application de auto.arima, puis l'application tsoutliers (avec les valeurs par défaut incluant auto.arima):
auto.arima(Nile)
Series: Nile
ARIMA(1,1,1)
Coefficients:
ar1 ma1
0.2544 -0.8741
s.e. 0.1194 0.0605
sigma^2 estimated as 19769: log likelihood=-630.63
AIC=1267.25 AICc=1267.51 BIC=1275.04
Après avoir appliqué la fonction tsoutliers, il identifie une valeur aberrante LS et une valeur aberrante additive et recommande un ordre ARIMA (0,0,0).
nile.outliers <- tso(Nile,types = c("AO","LS","TC"))
nile.outliers
Series: Nile
ARIMA(0,0,0) with non-zero mean
Coefficients:
intercept LS29 AO43
1097.7500 -242.2289 -399.5211
s.e. 22.6783 26.7793 120.8446
sigma^2 estimated as 14401: log likelihood=-620.65
AIC=1249.29 AICc=1249.71 BIC=1259.71
Outliers:
type ind time coefhat tstat
1 LS 29 1899 -242.2 -9.045
2 AO 43 1913 -399.5 -3.306
la source
tsoutliers
a été renomméetso
afin d'éviter tout conflit avec une fonction du même nom dans le packageforecast
.clang
etgcc
et ni fonctionne. Je pense que c'est un paquet génial mais l'installation m'a vraiment brisé le cœur.Réponses:
filter
Dans votre exemple, vous pouvez utiliser la fonction
outliers.effects
pour représenter les effets des valeurs éloignées détectées sur la série observée:La valeur innovante, IO, est plus particulière. Contrairement aux autres types de valeurs aberrantes considérées dans
tsoutliers
, l'effet de l'IO dépend du modèle sélectionné et des estimations de paramètres. Ce fait peut être gênant en série avec de nombreuses valeurs aberrantes. Dans les premières itérations de l'algorithme (où l'effet de certaines des valeurs aberrantes n'a peut-être pas été détecté ni ajusté), la qualité des estimations du modèle ARIMA peut ne pas être suffisante pour définir avec précision l'IO. De plus, à mesure que l'algorithme progresse, un nouveau modèle ARIMA peut être sélectionné. Ainsi, il est possible de détecter une entrée / sortie à un stade préliminaire avec un modèle ARIMA mais sa dynamique est finalement définie par un autre modèle ARIMA choisi lors de la dernière étape.Dans ce document, il est montré que, dans certaines circonstances, l’influence d’une OI peut augmenter lorsque la date de son apparition s’éloigne du passé, ce qui est difficile à interpréter ou à supposer.
L'IO a un potentiel intéressant car il peut capturer des valeurs aberrantes saisonnières. Les autres types de valeurs aberrantes prises en compte
tsoutliers
ne permettent pas de saisir les tendances saisonnières. Néanmoins, dans certains cas, il peut être préférable de rechercher un éventuel changement de niveau saisonnier, SLS, au lieu de IO (comme indiqué dans le document mentionné précédemment).L’OI a une interprétation attrayante. Il est parfois compris comme une valeur aberrante additive qui affecte le terme de perturbation puis se propage dans la série en fonction de la dynamique du modèle ARIMA. En ce sens, les entrées / sorties ressemblent à des valeurs aberrantes additives, les deux affectant une seule observation, mais les entrées / sorties sont une impulsion dans le terme de perturbation, tandis que la zone d'opération est une impulsion ajoutée directement aux valeurs générées par le modèle ARIMA ou le processus de génération de données. . Que les valeurs aberrantes affectent les innovations ou soient en dehors du terme de perturbation peut être discuté.
Dans la référence précédente, vous trouverez peut-être quelques exemples de données réelles dans lesquelles des E / S sont détectées.
la source
forecast::auto.arima
avectsoutliers
est que tout est automatisé. Toutefois, il est conseillé d’exécuter les procédures automatiques avec des options alternatives. Vous pouvez d’abord, par exemple, consulter les tests ACF ou racine unitaire, puis choisir un modèle ARIMA à transmettretsoutliers
. Si des valeurs aberrantes sont trouvées pour votre modèle proposé, vous pouvez répéter l'analyse pour la série ajustée. C'est un processus itératif. La procédure automatique fournit un guide utile mais ne donne pas nécessairement la solution ultime ou unique.maxit.iloop
à 5-6 et voir si les résultats changent. Si l'avertissement est renvoyé avec un grandmaxit.iloop
(par exemple 20 ou plus), cela peut indiquer que quelque chose n'est pas correctement modélisé. Supprimer les entrées / sorties des types de valeurs aberrantes à prendre en compte peut être une bonne option dans certains cas. Dans la plupart des cas, vous pouvez ignorer l'avertissement. Vous pouvez utilisersuppressWarnings
pour les éviter.