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

问题描述

我有简单的每月数据集,只需尝试以下代码即可:

`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软件包。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...