| tukeys_anomalies <- data.frame() |
| ema_global_anomalies <- data.frame() |
| ema_daily_anomalies <- data.frame() |
| ks_anomalies <- data.frame() |
| hsdev_anomalies <- data.frame() |
| |
| init <- function() { |
| tukeys_anomalies <- data.frame() |
| ema_global_anomalies <- data.frame() |
| ema_daily_anomalies <- data.frame() |
| ks_anomalies <- data.frame() |
| hsdev_anomalies <- data.frame() |
| } |
| |
| test_methods <- function(data) { |
| |
| init() |
| #res <- get_data(url) |
| #data <- data.frame(as.numeric(names(res$metrics[[1]]$metrics)), as.numeric(res$metrics[[1]]$metrics)) |
| #names(data) <- c("TS", res$metrics[[1]]$metricname) |
| |
| limit <- data[length(data[,1]),1] |
| step <- data[2,1] - data[1,1] |
| |
| train_start <- data[1,1] |
| train_end <- get_next_day_boundary(train_start, step, limit) |
| test_start <- train_end + step |
| test_end <- get_next_day_boundary(test_start, step, limit) |
| i <- 1 |
| day <- 24*60*60*1000 |
| |
| while (test_start < limit) { |
| |
| print (i) |
| i <- i + 1 |
| train_data <- data[which(data$TS >= train_start & data$TS <= train_end),] |
| test_data <- data[which(data$TS >= test_start & data$TS <= test_end), ] |
| |
| #tukeys_anomalies <<- rbind(tukeys_anomalies, ams_tukeys(train_data, test_data, 3)) |
| #ema_global_anomalies <<- rbind(ema_global_anomalies, ema_global(train_data, test_data, 0.9, 3)) |
| #ema_daily_anomalies <<- rbind(ema_daily_anomalies, ema_daily(train_data, test_data, 0.9, 3)) |
| #ks_anomalies <<- rbind(ks_anomalies, ams_ks(train_data, test_data, 0.05)) |
| hsdev_train_data <- data[which(data$TS < test_start),] |
| hsdev_anomalies <<- rbind(hsdev_anomalies, hsdev_daily(hsdev_train_data, test_data, 3, 3, day, 7*day)) |
| |
| train_start <- test_start |
| train_end <- get_next_day_boundary(train_start, step, limit) |
| test_start <- train_end + step |
| test_end <- get_next_day_boundary(test_start, step, limit) |
| } |
| return (hsdev_anomalies) |
| } |
| |
| get_next_day_boundary <- function(start, step, limit) { |
| |
| if (start > limit) { |
| return (-1) |
| } |
| |
| while (start <= limit) { |
| if (((start %% (24*60*60*1000)) - 28800000) == 0) { |
| return (start) |
| } |
| start <- start + step |
| } |
| return (start) |
| } |