# MariaRemark -------------------------------------------------------------
# Out_of_trend ------------------------------------------------------------
#' Out of trend Dynamics decomposition
#'
#' @param ts - vector of numeric data, charaterises the dynamic process
#' @param delta - time delta for window kernel
#' @param mode - type of kernel substitution
#'
#' @return
#' @export
#'
#' @examples
MariaRemark.out_of_trend <- function(ts, delta,
mode = c("AP", "GP_log", "GP_lin", "W", "HP")) {
mode <- mode[1]
lents <- length(ts)
if (mode == "GP_log") {
return(
c(rep(0, times = delta),
log((ts[1:(lents - 2*delta)] * ts[(2*delta + 1):lents]) /
(ts[(delta + 1):(lents - delta)]^2)),
rep(0, times = delta))
)
} else if (mode == "GP_lin") {
return(
c(rep(0, times = delta),
(ts[1:(lents - 2*delta)] * ts[(2*delta + 1):lents]) -
(ts[(delta + 1):(lents - delta)]^2),
rep(0, times = delta))
)
} else if (mode == "W") {
yt_ <- ts[1:(lents - 3*delta)]
yt <- ts[(1 + delta):(lents - 2*delta)]
yt_1 <- ts[(1 + 2*delta):(lents - delta)]
yt_2 <- ts[(1 + 3*delta):(lents)]
return(
c(rep(0, times = delta),
log((yt_ * yt_2 + yt * yt_1)/(yt_ * yt_1 + yt * yt_2)),
rep(0, times = 2 * delta))
)
} else if (mode == "HP") {
return(
c(rep(0, times = delta),
log((ts[1:(lents - 2*delta)]^2 + ts[(2*delta + 1):lents]^2) /
((ts[1:(lents - 2*delta)] + ts[(2*delta + 1):lents]) *
ts[(delta + 1):(lents - delta)])),
rep(0, times = delta))
)
} else {
return(
c(rep(0, times = delta),
log((ts[1:(lents - 2*delta)] + ts[(2*delta + 1):lents]) /
(2 * ts[(delta + 1):(lents - delta)])),
rep(0, times = delta))
)
}
}
# Alter_Johns -------------------------------------------------------------
#' Alter-Johns function
#'
#' @param ts - time series of dynamic system
#' @param p - norm
#'
#' @return
#' @export
#'
#' @examples
MariaRemark.Alter_Johns <- function(ts, p = 1) {
lents <- length(ts)
a <- numeric(length = lents)
a[1] <- 0
for (i in 1:(lents-1)) {
a[i + 1] <- 1/(lents - i) * sum(abs(ts[1:(lents - i)] - ts[(1 + i):lents])^(p))^(1/p)
}
return(a)
}
# Shift_function ----------------------------------------------------------
#' Alter-Johns general function (shift function)
#'
#' @param ts - time series of dynamic process
#' @param delta_bounds - dt_min and dt_max of ts process
#' @param mode - type of kernel substitution
#' @param p - norm mode
#'
#' @return
#' @export
#'
#' @examples
MariaRemark.Shift_function <- function(ts, delta_bounds = c(1, 100),
mode = "AP",
p = 1) {
lents <- length(ts)
Z <- matrix(ncol = lents, nrow = (delta_bounds[2] - delta_bounds[1] + 1))
for (row in ((delta_bounds[1]:delta_bounds[2]) - delta_bounds[1] + 1)) {
Z[row, ] <- c(
MariaRemark.Alter_Johns(
MariaRemark.out_of_trend(ts = ts,
delta = (row - 1 + delta_bounds[1]),
mode = mode),
p = p
)
)
}
return(Z)
}
# A <- MariaRemark.Shift_function(sin(seq(-10, 10, 0.01)) + 2)
# plotly::plot_ly(z = ~A, type = "surface")
# (sin(seq(-10, 10, 0.01)) + 3) %>%
# MariaRemark.out_of_trend(delta = 100, mode = "AP") %>%
# MariaRemark.Alter_Johns(p = 1) %>%
# plot(type = "l")
# t <- (1:100000)[is_prime(1:100000)]
# x <- t * cos(t)
# y <- t * sin(t)
# plotly::plot_ly(x = x, y = y, type = "scatter", size = I(0.7)) %>% plotly::layout(scene = list(aspectration=list(x=1,y=1)))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.