我有一个简单的每月数据集,并简单地尝试了以下代码:
`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发布于 2020-10-09 18:50:08
由于我看不到您使用的是哪些数据,所以很难说出哪里出了问题,但这里有一个可能会有帮助的示例代码。让我们从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包。
https://stackoverflow.com/questions/64014209
复制相似问题