首页 文章

在预测之后更改时间序列图的轴/比例

提问于
浏览
0

我正在努力改变我的时间序列预测图的x轴(时间) . 我已经运行了很多模型,但我正在努力解决同样的问题 . 我将为其中一个模型编写模型拟合,预测和图的代码 . 首先是我原来的时间序列 . 注意:我的模型适用于2008-2016的训练数据,并在2017年的11个月的测试数据上测试我的模型 .

enter image description here

数据拆分 .

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)

这是我的预测图:
enter image description here

看丑啊2017.0,2017.2 .... 2017.8?我希望它代表2017年11月的1,2,3,...... 11 .

是的,我只想绘制测试数据并对其进行预测,而不是整个系列 .

我很确定我的问题是我使用xlim函数 . 我正在使用xlim函数来绘制2017年的月份,如果我不使用它,那么R将绘制从2008年到2017年的整个系列 . 我试图通过在plot命令中设置xaxt =“n”来大量使用轴功能,但仍然无法弄明白 .

如果您需要我提供更多信息,请与我们联系 . 任何帮助将不胜感激 .

更新,根据某人的建议,我试图通过在我的情节中设置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)

enter image description here

你可以看到 . 它让我在中途走了一半 . 我可以删除当前的轴标签,但我无法编写新轴 . 这个新代码甚至没有给我一个错误,否则我会尝试调试它 . 它接受我的代码,但没有给我所需的输出 .

1 回答

  • 1

    这是一个想法 . 我不确定数据是什么样的,但我猜你有一个日期变量的日期类型 - 这意味着整数1到11的“by”序列可能会将这些新标签放在情节限制 . 请尝试使用日期序列 .

    改变这个:x < - seq(1,11,1)

    对于这样的事情:x < - seq.Date(as.Date(“2017-01-01”),as.Date(“2017-11-01”),“months”)

    我不确定你的数据到11月份有多远,因此您可能希望将序列中的“到”日期设置为12月,这样您就可以完全覆盖11月的数据点 .

相关问题