Комментарии: Во - первых , я хотел бы сказать большое спасибо автору этого новые tsoutliers пакет , который реализует Чен и Лю обнаружения временных рядов останец , который был опубликован в журнале Американской статистической ассоциации в 1993 году Open Source программного обеспечения .
Пакет итеративно обнаруживает 5 различных типов выбросов в данных временных рядов:
- Аддитивный выброс (АО)
- Инновационный выброс (IO)
- Сдвиг уровня (LS)
- Временное изменение (ТС)
- Сезонный сдвиг уровня (SLS)
Еще более здорово то, что этот пакет реализует auto.arima из пакета прогноза, поэтому обнаружение выбросов происходит без проблем. Также пакет создает хорошие графики для лучшего понимания данных временных рядов.
Ниже приведены мои вопросы:
Я попытался запустить несколько примеров, используя этот пакет, и он отлично работал. Аддитивные выбросы и сдвиг уровня интуитивно понятны. Тем не менее, у меня было 2 вопроса относительно передачи временных изменений и инновационных выбросов, которые я не могу понять.
Пример выброса временного изменения:
Рассмотрим следующий пример:
library(tsoutliers)
library(expsmooth)
library(fma)
outlier.chicken <- tsoutliers::tso(chicken,types = c("AO","LS","TC"),maxit.iloop=10)
outlier.chicken
plot(outlier.chicken)
Программа правильно обнаруживает сдвиг уровня и временное изменение в следующем месте.
Outliers:
type ind time coefhat tstat
1 LS 12 1935 37.14 3.153
2 TC 20 1943 36.38 3.350
Ниже сюжет и мои вопросы.
- Как записать временное изменение в формате уравнения? (Сдвиг уровня можно легко записать в виде двоичной переменной, в любое время до 1935 года / Obs 12 равен 0, а в любое время после 1935 года и после равен 1).
Уравнение для временного изменения в руководстве пакета и в статье дано как:
где составляет 0,7. Я просто пытаюсь перевести это на пример выше.
- Мой второй вопрос касается инновационного выброса, я никогда не
сталкивался с инновационным выбросом на практике. любой числовой пример или пример случая был бы очень полезен.
Редактировать: @Irishstat, функция tsoutliers делает отличную работу по выявлению выбросов и предложению подходящей модели ARIMA. Глядя на набор данных Nile, см. Ниже применение auto.arima и затем применение tsoutliers (со значениями по умолчанию, которые включают 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
После применения функции tsoutliers он определяет выбросы LS и аддитивные выбросы и рекомендует порядок 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
была переименована, tso
чтобы избежать конфликта с функцией с тем же именем в пакете forecast
.