Я работаю над обнаружением аномалий для серий ежедневных временных рядов (неиерархических), которые демонстрируют как годовую, так и еженедельную сезонность.Я протестировал несколько алгоритмов, и оказалось, что tbats () из пакета прогноза работает лучше всего.Я обнаружил, что он отражает еженедельную сезонность, а тренд - ежегодную сезонность по уровням.
Я должен разбить свои данные на последние 90 дней (эти данные не «закончены» и по-прежнему имеют тенденцию к снижению дохода),Таким образом, я возвращаюсь 365 дней, чтобы получить исторические тенденции.Это обозначает "исторические" и "недавние наборы данных" наборы данных.Я определю недавние точки данных, которые намного ниже значения tbats, как выбросы.
#Load Libraries
library(data.table) #Data cleaning Library
library(lubridate) #Date cleaning Library
library(dplyr) #data manipulation Library
library(zoo) #time series indexing Library
library(stats) #Statistics Library
library(timeSeries) #Time Series Library
library(forecast) #Forecasting Library
library(purrr) #data cleaning library
#orders dates oldest to newest for each department
orderedhistoric <- arrange(historicdata,Department,ServiceDate)
orderedrecent <- arrange(recentdata,Department,ServiceDate)
#splits into a list of department data
historicsplit <- split(orderedhistoric, orderedhistoric[,2], drop = FALSE)
recentsplit <- split(orderedrecent, orderedrecent[,2], drop = FALSE)
#Creates timeseries elements for every department
historictimeseries <- lapply(historicsplit,function(x) ts(x[3],frequency=7))
recenttimeseries <- lapply(recentsplit,function(x) ts(x[3],frequency=7))
#finds optimal TBATS from historic data
TBATS <- lapply(historictimeseries, function(x) tbats(x))
У меня возникли проблемы с подгонкой этих параметров tbats к соответствующим недавним данным.Я в основном хочу сделать стандартную перекрестную проверку по этому вопросу, несмотря на то, что это данные временных рядов.В последних данных не были опубликованы все доходы (на самом деле это то, что они пытаются найти), поэтому я определенно не хочу, чтобы они влияли на параметры tbats.
В качестве альтернативы, я бы взял другие предложенияо том, как это сделать.Опять же, я использую TBAT, а не auto.Arima из-за сложной сезонности.