А можете еще раз пояснить, пож., что такое векторно в вашем понимании, в этом контексте. Чем это лучше, напр., параллельно исполнения?
По поводу "тяжести" функции. Там не столько сама ARIMA тяжела (ну, она тоже не совсем "легка"), сколько перебор (иногда) десятков моделей аримы. Это же авто арима. Вот он и тормозит. Могу подсказать, как настроить аргументы этой функции перебора для менее тормозных вычислений
В моем представлении (понимаю, что грубо очень) векторизованное это все, что не через цикл. Алгоритм оптимизирован уже внутри функции, и мне не нужно придумывать, как оптимальнее цикл написать. Как-то так. Извиняюсь, если совсем по-дилетантски, R учу чуть больше полугода, и то так, набегами. Пример
x <- 1:1e6
#вектором
system.time( y1 <- x^2)
#криво циклом
tmp.function <- function(x) {
res <- rep(0, length(x))
for( i in (1:length(x))) {
res[i] <- x[i]^2
}
res
}
system.time( y2 <- tmp.function(x) )
Выше
Dm Kb дал код с map2 (кстати, спасибо огромное!) – вот, видимо то, что нужно. Про распараллеливание я не спрашивал, так как считал, что там все сложно, нужны функции, написанные специально под параллельное исполнение. Взял код – все заработало «с листа», и (главное!) в целом все мне примерно понятно, буду осваивать.
Насчет арима- все что я об этом методе знаю (а это немного), я знаю
отсюда. . Решил попробовать его «по-быстрому», и, если результаты будут хоть немного обнадеживать- уже погружаться глубже. Так что за подсказу о параметрах буду благодарен. Правда, единственное, что я с уверенностью могу сказать про исходные ряды – у них сезонность 12 месяцев, что я и учитываю в ts().
Вообще у меня есть сомнения, что арима прямо сильно поможет в моем случае, но попробовать хочу. Пока идея такая: по данным до «вчера» предсказываю значение на «сегодня». Разница «сегодня» предсказанного и реального – один из предикторов для предсказания значения «завтра»