【发布时间】:2020-03-25 09:11:49
【问题描述】:
我正在处理时间序列数据,当比例数据遵循滚动窗口时,模型似乎改进了 10% 左右。为了计算滚动比例,我编写了以下函数:
library(data.table)
d <- data.table(index = 1:100, x = rnorm(100))
roll_scale <- function(x, n = 3, ...) {
xout <- frollapply(x, n , FUN = function(z) c( scale(z)[n, 1]), ... )
return(xout)
}
d[, sData := roll_scale(x)]
基于评论how can I use rollapply with scale
在对数据进行建模后,我想预测最近的时间点并将结果恢复到原始规模。但是,这似乎比我预期的要棘手。这是我通过 DMwR::unscale 的尝试:
roll_UNscale <- function(scaled, Ref_values, n = 3, ...) {
xout <- frollapply(scaled, n , FUN = function(z, Ref_values) {
c(DMwR::unscale(scaled, scale(Ref_values))[ n,])
}, ..., Ref_values = Ref_values)
return(xout)
}
d[, roll_UNscale(sData, x)]
希望你能帮我一把
【问题讨论】:
标签: r data.table time-series