Commenti: Prima di tutto vorrei dire un grande grazie al autore del nuovo tsoutliers pacchetto che implementa Chen e Liu di rilevazione delle serie storiche dei valori anomali che è stato pubblicato sul Journal of American Statistical Association nel 1993 in Open Source software .
Il pacchetto rileva 5 diversi tipi di valori anomali in modo iterativo nei dati delle serie temporali:
- Additivo anomalo (AO)
- Innovation Outlier (IO)
- Level Shift (LS)
- Modifica temporanea (TC)
- Cambio di livello stagionale (SLS)
Ciò che è ancora più bello è che questo pacchetto implementa auto.arima dal pacchetto di previsione, quindi il rilevamento dei valori anomali è semplice. Inoltre, il pacchetto produce grafici utili per una migliore comprensione dei dati delle serie temporali.
Di seguito sono le mie domande:
Ho provato a fare alcuni esempi usando questo pacchetto e ha funzionato benissimo. Gli outlier additivi e il cambio di livello sono intuitivi. Tuttavia, ho avuto 2 domande in merito alla consegna di valori anomali di modifica temporanea e valori anomali innovativi che non sono in grado di comprendere.
Esempio di valore anomalo di modifica temporanea:
Considera il seguente esempio:
library(tsoutliers)
library(expsmooth)
library(fma)
outlier.chicken <- tsoutliers::tso(chicken,types = c("AO","LS","TC"),maxit.iloop=10)
outlier.chicken
plot(outlier.chicken)
Il programma rileva giustamente uno spostamento di livello e un cambio temporaneo nella seguente posizione.
Outliers:
type ind time coefhat tstat
1 LS 12 1935 37.14 3.153
2 TC 20 1943 36.38 3.350
Di seguito è riportata la trama e le mie domande.
- Come scrivere la modifica temporanea in un formato di equazione? (Il cambio di livello può essere facilmente scritto come una variabile binaria, in qualsiasi momento prima del 1935 / Obs 12 è 0 e in qualsiasi momento dopo il 1935 e dopo è 1)
L'equazione per la modifica temporanea nel manuale del pacchetto e nell'articolo è data come:
dove è 0,7. Sto solo lottando per tradurre questo nell'esempio sopra.
- La mia seconda domanda riguarda gli outlier innovativi,
in pratica non mi sono mai imbattuto in un outlier innovativo. qualsiasi esempio numerico o esempio di caso sarebbe molto utile.

Modifica: @Irishstat, la funzione tsoutliers fa un ottimo lavoro nell'identificare i valori anomali e nel suggerire un modello ARIMA appropriato. Osservando il set di dati del Nilo, vedere di seguito l'applicazione di auto.arima e quindi l'applicazione di tsoutliers (con impostazioni predefinite che include 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
Dopo aver applicato la funzione tsoutliers, identifica un outlier LS e un outlier additivo e raccomanda un ordine 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è stata rinominata in modo tsoda evitare conflitti con una funzione con lo stesso nome nel pacchetto forecast.
clange gcce nessuno dei due funziona. Penso che sia un pacchetto fantastico ma l'installazione mi ha davvero spezzato il cuore.
