Я последовал примеру baggedModel . Я назвал lagwalk
для каждого лага, а затем обманул forecast
, чтобы подумать, что это baggedModel
, так как он довольно похож (только это просто агрегация, здесь нет начальной загрузки). Буду признателен за проверку кода кем-то, кто знает пакет forecast
, есть ли что-нибудь попроще, что я мог бы использовать?
historical_mean_model <- function(y, lags, lambda=NULL, biasadj=FALSE, ..., x=y) {
out <- list()
out$y <- as.ts(y)
out$modelargs <- list(...)
out$models <- lapply(lags, function(lag) {
mod <- forecast:::lagwalk(
x, lag = lag, drift = FALSE,
lambda = lambda, biasadj = biasadj, ...
)
})
fitted_all_lags <- lapply(out$models, fitted)
fitted_all_lags <- as.matrix(as.data.frame(fitted_all_lags))
out$fitted <- ts(apply(fitted_all_lags, 1, mean))
tsp(out$fitted) <- tsp(out$y)
out$residuals <- out$y - out$fitted
out$series <- deparse(substitute(y))
out$method <- "historical_mean_model"
out$call <- match.call()
return(structure(out, class = c("baggedModel")))
}