STL на временных рядах с пропущенными значениями для обнаружения аномалий

12

Я пытаюсь обнаружить аномальные значения во временном ряду климатических данных с некоторыми отсутствующими наблюдениями. При поиске в Интернете я нашел много доступных подходов. Из них stl разложение кажется привлекательным в смысле удаления трендовых и сезонных компонентов и изучения остатка. Чтение STL: Процедура разложения по сезонным трендам, основанная на Loess , stlкажется гибкой в ​​определении настроек для присвоения изменчивости, не зависит от выбросов и может применяться, несмотря на пропущенные значения. Однако, пытаясь применить его в течение Rчетырех лет наблюдений и определения всех параметров в соответствии с http://stat.ethz.ch/R-manual/R-patched/library/stats/html/stl.html , я сталкиваюсь с ошибка:

"time series contains internal NAs"(когда na.action=na.omit) и
"series is not periodic or has less than two periods"(когда na.action=na.exclude).

Я дважды проверил, что частота правильно определена. Я видел соответствующие вопросы в блогах, но не нашел ни одного предложения, которое могло бы решить эту проблему. Разве нельзя применять stlв серии с пропущенными значениями? Я очень неохотно их интерполирую, так как не хочу вводить (и, следовательно, обнаруживать ...) артефакты. По той же причине я не знаю, насколько целесообразно было бы вместо этого использовать подходы ARIMA (и если пропущенные значения все еще будут проблемой).

Пожалуйста, поделитесь, если вы знаете, как подать заявку stlв серии с пропущенными значениями, или если вы считаете, что мой выбор методологически неверен, или если у вас есть какие-либо лучшие предложения. Я новичок в этой области и поражен кучей (казалось бы ...) соответствующей информации.

Эффи
источник
У меня та же проблема. Метод STL должен иметь возможность просто заполнить пропущенные значения через LOESS, но эта реализация R, похоже, этого не делает.
jf328

Ответы:

5

Модели ARIMA легко включают фиктивные переменные для работы с пропущенными значениями. Это так называемые импульсные индикаторы. Методология проста и задокументирована в http://www.unc.edu/~jbhill/tsay.pdf . В целом, метод извлекает из текущей остаточной серии информацию, касающуюся импульсов, сдвигов уровней, сезонных импульсов и трендов местного времени.

IrishStat
источник
спасибо за предложение и очень интересную статью!
effie
3

В соответствии с @Julius в этом посте можно использовать stlс na.approx, из zooпакета, используя stl(x, na.action = na.approx, ...). Это делает какую-то интерполяцию .

Роберт
источник
0

Вы также можете проверить пакет Хафенаstlplus . Подробности в его диссертации.

Вы можете установить его из CRAN с

install.packages("stlplus")

или прямо из GitHub с

devtools::install_github("hafen/stlplus").
sfjac
источник