0

我有一个 51 点的销售数据。我想预测另外 10 个未来值。这是一个销售数据,因此是季节性的,但用于预测季节性的数据点很少。当我使用时间序列时,它可能会尝试拟合并给出“103”作为所有下一个预测的结果。我认为使用 ARMA 会有所帮助,但在适应 ARMA 并使用 forecast() 后,我仍然得到相同的输出。我是趋势和预测的新手,不知道除了回归之外是否还有其他方法可以预测未来值。请帮忙。

数据:

Product    23  22  21  31  29  13  15  20  15  26  11  24  14  18  15  21  25  23  27  30  19  18  20  13  23  40  14  15  20  14  9   22  14  24  26  22  23  16  24  19  14  10  17  12  11  15  9   24  17  22  28

我使用的代码:

library("tseries")
arma<-arma(Product)
final<-forecast(arma,10)
4

2 回答 2

0

您的问题缺少一些细节,例如您想要拟合的 ARMA 模型的顺序和您使用的代码。考虑到 103 比您给我们的任何值都大,我怀疑您的代码中存在错误。
这是 ARMA(1,1) 的一个实现,它应该可以工作:

data<-strsplit("23  22  21  31  29  13  15  20  15  26  11  24  14  18  15  21  25  23  27  30  19  18  20  13  23  40  14  15  20  14  9   22  14  24  26  22  23  16  24  19  14  10  17  12  11  15  9   24  17  22  28",split="  ")
data<-as.numeric(data[[1]])
mod<-arima(data,order=c(1,0,1))
pred<-predict(mod,n.ahead=10)
pred
plot(c(data,pred$pred),type="l")

编辑:Ken 是对的,顺便说一句,ARMA 模型似乎对您的数据没有多大用处,并且预测主要由截距项给出。

于 2017-05-15T07:52:58.353 回答
0

将 ARIMA 模型拟合到您的数据会得到 a ARIMA(0,0,0),这意味着拟合值取决于 0 个先前的观测值和 0 个先前的拟合误差。这再次意味着 ARIMA 模型(基于此数据)可以做出的最佳预测器是一个常数。对于每次观察,无论之前的观察如何,它都会预测相同的值。

library(forecast)
df <- c(23,  22,  21,  31,  29,  13,  15,  20,  15,  26,  11,  24, 14,  18,  15,  21, 
    25,  23 , 27,  30,  19,  18 , 20 , 13 , 23 , 40  ,14 , 15 , 20  ,14 , 9  , 22  ,
    14 , 24  ,26  ,22 , 23 , 16 , 24 , 19  ,14 , 10  ,17 , 12,  11,  15 , 9  , 24 , 1,
    7,  22,  28)


 # auto.arima() selects the ARIMA(r, s, q) model with the highest AIC-score:
 (auto.arima(df))
 # Series: ts 
 # ARIMA(0,0,0) with non-zero mean 

 #Coefficients:
 #    intercept   19.0000
 #    s.e.        0.9642

 # sigma^2 estimated as 49.29:  log likelihood=-174.62
 # AIC=353.25   AICc=353.49   BIC=357.15

 forecast.Arima(object = auto.arima(df), h = 10)
 #    Point    Forecast    Lo 80    Hi 80    Lo 95    Hi 95
 #    53             19 10.00226 27.99774 5.239138 32.76086
 #    54             19 10.00226 27.99774 5.239138 32.76086
 #    55             19 10.00226 27.99774 5.239138 32.76086
 #    56             19 10.00226 27.99774 5.239138 32.76086
 #    57             19 10.00226 27.99774 5.239138 32.76086
 #    58             19 10.00226 27.99774 5.239138 32.76086
 #    59             19 10.00226 27.99774 5.239138 32.76086
 #    60             19 10.00226 27.99774 5.239138 32.76086
 #    61             19 10.00226 27.99774 5.239138 32.76086
 #    62             19 10.00226 27.99774 5.239138 32.76086
于 2017-05-15T07:46:35.237 回答