Я изо всех сил пытаюсь изменить ось x (время) для графика прогноза временных рядов. Я пробовал много моделей, но борюсь с той же проблемой. Я собираюсь написать код для подгонки модели, прогноза и графика для одной из моделей. Во-первых, это мой первоначальный временной ряд. Примечание: я настраиваю свою модель на данные обучения за 2008-2016 годы и тестирую свою модель на своих тестовых данных за 11 месяцев 2017 года.
Разделение данных.
sal.ts <- window(sal.ts.original, start=c(2008,1), end=c(2016,12))
sal.test <- window(sal.ts.original, start=c(2017,1))
Теперь модель.
sal.hw.mul <- HoltWinters(sal.ts, seasonal = "mult")
sal.hw.mul
fc.hwm <- forecast(sal.hw.mul, h=11)
fc.hwm
plot(fc.hwm, xlim=c(2017,2017+11/12), main = "Forecast from Mutltiplicative HW", xlab = "Year", ylab = "Total Sales, $M")
lines(sal.test,col='red', lwd=2)
legend("topleft", c("Actual", "Predicted"), col = c(4,2), lty = 1)
Видите уродливые 2017.0, 2017.2 .... 2017.8? Я хочу вместо этого сказать 1,2,3, .... 11 за 11 месяцев 2017 года.
Да, я хочу только построить график своих тестовых данных и сделать прогноз по ним, а не для всей серии.
Я почти уверен, что моя проблема связана с тем, что я использую функцию xlim. Я использую эту функцию xlim, чтобы просто отобразить месяцы 2017 года, и если я не буду использовать это, R отобразит всю серию с 2008 по 2017 год. Я много пытался поиграть с функцией оси, установив xaxt = "n" в команде plot, но все равно не мог понять.
Дайте мне знать, если вам понадобится от меня дополнительная информация. Любая помощь будет оценена по достоинству.
Обновите, по чьему-то предложению я попытался написать настраиваемую ось, установив xaxt = 'n' в моем графике. Вот изменение кода.
x <- seq(1,11,1)
fc.hwm <- forecast(sal.hw.mul, h=11)
fc.hwm
layout(1:1)
plot(fc.hwm, xaxt='n', xlim=c(2017,2017+11/12), main = "Forecast from Mutltiplicative HW", xlab = "Year", ylab = "Total Sales, $M")
axis(side=1, at= x, labels=c("1","2","3","4","5","6","7","8","9","10","11"))
lines(sal.test,col='red', lwd=2)
legend("topleft", c("Actual", "Predicted"), col = c(4,2), lty = 1)
Как видите. Это приводит меня к цели. Я могу удалить текущую метку оси, но не могу написать новую ось. Этот новый код даже не выдает мне ошибки, иначе я бы попытался отладить его. Он принимает мой код, но не дает желаемого результата.