Временные ряды Обнаружение аномалии в R с использованием пакета AnomalyDetectionTs - PullRequest
0 голосов
/ 13 марта 2020

Я использую пакет AnomalyDetectionTs в R для обнаружения аномалий за 275 дней, однако некоторые наблюдения менее 275 дней

вот кадр данных

enter image description here

и вот количество наблюдений в каждой категории

enter image description here

Но когда я запусту код обнаружения аномалии, я увижу следующее сообщение об ошибке:

Error in do.ply(i) : 
  task 88 failed - "With longterm=TRUE, AnomalyDetection splits the data into 2 week periods by default. You have 103 observations in a period, which is too few. Set a higher piecewise_median_period_weeks."

Я установил piecewise_median_period_weeks на 40 недель следующим образом:

AnomalyDetectionTs(df, max_anoms = 0.002, direction = "both", alpha = 0.05, e_value = FALSE, plot = FALSE, y_log = FALSE,longterm=TRUE,piecewise_median_period_weeks=40) 

Когда я просто фильтрую эти категории более чем на 103 наблюдения, все работает нормально. Не могли бы вы помочь мне, как определить этот параметр (piecewise_median_period_weeks), который может обнаружить все наблюдения.

1 Ответ

2 голосов
/ 27 апреля 2020

У меня та же проблема, и я разрешаю ее, как показано ниже. Для повышения производительности я использую пакет формы future_lapply. *

Также я использую return(tibble::tibble(timestamp = NA)), потому что затем я добавляю purrr:::map_dfr, чтобы получить фрейм данных с 3 столбцами, где некоторые серии не имеют аномалий, поэтому они являются NA

Я хотел бы использовать данные. таблицу, чтобы решить эту проблему, но я не могу, потому что ad_ts возвращает значение отметки времени c, которое нарушает код.

...