#!/usr/bin/env Rscript files <- commandArgs (trailingOnly = TRUE) `%>%` <- magrittr::`%>%` for (f in files) { n_train <- basename (f) splits <- strsplit (n_train, ".", fixed = TRUE)[[1]] if (length (splits) != 2) { cat (sprintf ("Skipping file %s.\n", f), file = stderr ()) next } n_train <- splits[1] n_train <- as.numeric (rev (strsplit (n_train, "_", fixed = TRUE)[[1]])[1]) if (is.na (n_train)) { cat (sprintf ("Skipping file %s.\n", f), file = stderr ()) next } data <- as.matrix (readr::read_csv (f, col_names = FALSE)) n <- nrow (data) if (ncol (data) == 1) { data <- cbind (data, data ^ 2, c (data[n], data[1:(n - 1)])) } data <- scale (data) dependency <- exp (-0.1 * 1:100) T_normal <- data[seq_len (n_train),, drop = FALSE] T <- data[n_train - 1 + seq_len (nrow (data) - n_train),, drop = FALSE] if (nrow (T_normal) > 1000) { i <- ceiling (nrow (T_normal) * ((1:1000) / 1000)) T_normal <- T_normal[i,, drop = FALSE] } tuning <- (strats::strats_tune (T, dependency, T_normal) %>% dplyr::arrange (error)) alpha <- tuning$alpha[1] beta <- tuning$beta[1] gamma <- tuning$gamma[1] model <- strats::strats (T, alpha, beta, gamma, dependency, T_normal) cat (sprintf ("%s: %s (%g, %g, %g)\n", f, model$anomalies$observation[1], alpha, beta, gamma)) }