如何解决如何用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
软件包。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。