#r #time-series
Вопрос:
При построении базовой прогностической модели с использованием набора данных dowjones из библиотеки(fma) я столкнулся с «> Ошибка в xx — ff[1:n] : нечисловой аргумент двоичного оператора».
library(forecast)
library(fma)
dj60 <- window(dowjones, end = 60)
dj60.rwf.drift <- rwf(dj60, h = 18, drift = TRUE)
dj60.od <- window(dowjones, start = 61)
accuracy(dj60.od, dj60.rwf.drift)
ВОЗВРАТ:
Ошибка в xx — ff[1:n] : нечисловой аргумент двоичного оператора
Предыдущая цепочка команд работает для другого набора данных (visnights из библиотеки fpp2):
library(forecast)
library(fpp2)
vn_Melbourne_train1 <- window(visnights[, "QLDMetro"], end = c(2014, 4))
snaive_vn_Melbourne_train1 <- snaive(vn_Melbourne_train1, h = 4)
vn_Melbourne_test1 <- window(visnights[, "QLDMetro"], start = c(2015, 1), end = c(2015, 4))
accuracy(snaive_vn_Melbourne_train1, vn_Melbourne_test1)
Я str()
отредактировал все объекты и нахожу их сопоставимыми.
Почему эта ошибка возникает для одного набора данных, а не для другого?
Комментарии:
1. Нам действительно нужно было бы увидеть примеры данных, чтобы дать какие-либо рекомендации по этому поводу. Можете ли вы опубликовать подмножества данных, которые все еще иллюстрируют проблему? Используйте
dput()
каждую переменную, как только она будет уменьшена до разумного размера; тогда любому будет легко воспроизвести то, что вы сделали.2. @user2554330 приносим извинения. Я не понимал, что наборы данных не являются частью r. Я обновил вопрос, включив в него соответствующие библиотеки.
3. Я могу воспроизвести вашу ошибку. Если я запущу
debug(forecast:::testaccuracy)
, я смогу сделать один шаг к ошибке. Когда это происходит,x
временные ряды в примере работают, но сложныйforecast
объект в примере eaxmple этого не делает. Я совсем не знаком с этими функциями, поэтому не знаю, является ли это ошибкой в одном из используемых вами пакетов или ошибкой в том, как вы его используете.4. Понятия не имею, имеет ли это смысл, но замена аргументов заставляет работать первый:
accuracy(dj60.rwf.drift, dj60.od)
5. ?точность указывает «точность(объект, x, тест = NULL, d = NULL, D = NULL, f = NULL, …)», где x-вектор. Считаются ли ts()векторами?
Ответ №1:
Прочитайте файл справки help(accuracy)
. Первый аргумент-объект прогноза, второй аргумент-фактические значения в тестовом периоде.
accuracy(dj60.rwf.drift, dj60.od)
должно сработать