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
tsoutliers
a été renommée tso
afin d'éviter tout conflit avec une fonction du même nom dans le package forecast
.