如何用R解决Holtwents预测模型中的误差



我有一个简单的月度数据集,只需尝试以下代码:

`df2.holtwinters <- subset(df, account_id==loopitem) 
x.holtwinters <- ts(df2.holtwinters$amount_usd, start = c(2015,1), end = c(2019,5), frequency = 12)
arima1.holtwinters <- HoltWinters(x.holtwinters)
forecast1.holtwinters <- predict(arima1.holtwinters, n.ahead=1*1)

数据集如下所示:

`      id     <date>         <dbl>
1     123  2015-01-01       -390
2     123  2015-02-01        944
3     999  2015-01-01        672

它给出了以下错误:

`In HoltWinters(x.holtwinters) :
optimization difficulties: ERROR: ABNORMAL_TERMINATION_IN_LNSRCH

由于我看不到您正在使用哪些数据,所以不容易说出哪里出了问题,但这里有一个示例代码可能会有所帮助。让我们从Rob Hyndman的网站获取零售数据

library(forecast)
retail <- read.csv("https://robjhyndman.com/data/ausretail.csv",header=FALSE)

删除日期列并创建mts分类数据

retail <- stats::ts(retail[,-1], start = c(1982,4), frequency = 12)

绘制第一个时间序列(第一列(

plot(retail[,1])

将Holt-Winters拟合到数据中的第一个时间序列

fit <- HoltWinters(retail[,1])

使用预测函数来获得预测,就像你做一样

fc <- predict(fit, n.ahead = 12)
plot(fc)

或者你可以使用预测函数来获得一个很好的预测输出。

fc <- forecast(fit, n.ahead = 12)
plot(fc)

如果由于某些原因您无法获得零售数据,请使用AirPassengers数据

fit <- HoltWinters(AirPassengers)
fc <- predict(fit, n.ahead = 12)
plot(fc)

或者您可以使用预测功能来获得预测输出

fc <- forecast(fit, n.ahead = 12)
plot(fc)

多时间序列的预测环路

nts <- ncol(retail) # number of time series
h = 12 # forecast horizon
fc <- matrix(nrow = h, ncol = nts)
for (i in 1:nts) {
fc[,i] <- forecast(HoltWinters(retail[,i]), h = h)$mean # it will return point forecast

}
colnames(fc) <- colnames(retail)
fc

我建议查看fable软件包。

相关内容

  • 没有找到相关文章

最新更新