在预测非周期性(非季节)时间序列数据时,我面临两个问题。 1-我想用102个训练2预测230个样本,如上所述,该数据不是周期性的,并且我没有获得良好的结果。
我尝试使用预测包(集合),但结果是线性的。另外,我尝试了ARIMA和其他在线解决方案。在这种情况下哪个是最好的包装?这是数据:
data<-c(0.912039419,0.967,1.074,1.139,0.955,0.9,0.975,0.983,0.8745,0.894,0.871,0.834,0.906672936,0.908150096,1.059,0.952,0.895,0.944666667,1.010666667,1.0085,0.911,1.15,0.9825,0.8955,0.888274541,0.8985,0.892252778,0.979,0.9685,0.9095,0.891535613,0.854,0.898643358,0.945,1.002,0.8945,0.899878442,0.904,0.904889356,0.799,0.916999404,0.966,0.955,0.97875,0.922,0.881,0.906,0.948,1.023,1.092666667,1.052333333,0.918333333,0.967,1.049,1.095,1.1165,0.834,1.059,0.8705,1.0265,0.738,0.937,1.0405,0.85,1.0885,0.901,0.911,1.0735,0.968,0.8955,0.8985,0.979,0.9685,0.886,0.933,0.854,0.9595,1.03,0.8945,0.904,0.8585,1.014,0.9325,0.9155,0.893,1.118,1.1665,1.0045,0.9,0.932878788,0.892,0.932,1.118,1.1665,1.118,1.194,1.113,0.922,0.9295,1.276,1.329,1.3505)
使用此代码:结果<-Forecast(ets(x(model,“ ZZZ”,阻尼= TRUE),h = 234)$平均值
我正在得到这个预测
我已经尝试了所有这些软件包,但是没有得到很好的结果。结果都是恒定的,仅预测了10个样本。有想法吗?
# ARIMA
fit.arima <- auto.arima(x)
forecast(fit.arima,h=10)
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
103 1.197507 1.074395 1.320618 1.0092237 1.385789
104 1.165417 1.034176 1.296658 0.9647016 1.366133
105 1.158687 1.024239 1.293134 0.9530672 1.364306
106 1.157275 1.020380 1.294170 0.9479118 1.366638
107 1.156979 1.017810 1.296148 0.9441378 1.369820
108 1.156917 1.015536 1.298297 0.9406942 1.373139
109 1.156904 1.013352 1.300456 0.9373602 1.376447
110 1.156901 1.011211 1.302591 0.9340877 1.379714
111 1.156901 1.009104 1.304697 0.9308650 1.382936
112 1.156900 1.007027 1.306774 0.9276882 1.386113
#--------------------------------------------
# TBATS
fit.tbats <- tbats(x)
forecast(fit.tbats,h=10)
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
103 1.158007 1.023787 1.309822 0.9591528 1.398087
104 1.158007 1.021329 1.312974 0.9556336 1.403236
105 1.158007 1.018924 1.316074 0.9521930 1.408306
106 1.158007 1.016567 1.319125 0.9488268 1.413302
107 1.158007 1.014257 1.322130 0.9455310 1.418229
108 1.158007 1.011991 1.325091 0.9423020 1.423089
109 1.158007 1.009766 1.328010 0.9391364 1.427885
110 1.158007 1.007582 1.330888 0.9360313 1.432622
111 1.158007 1.005436 1.333729 0.9329838 1.437302
112 1.158007 1.003326 1.336534 0.9299913 1.441927
#--------------------------------------------
library(tsintermittent)
# Croston’s method
f.crost <- crost(x,h=10,outplot=1)
f.crost$frc.out
[1] 1.03952 1.03952 1.03952 1.03952 1.03952 1.03952 1.03952 1.03952
[9] 1.03952 1.03952
#--------------------------------------------
# Single Exponential Smoothing
sexsm(x,h=10)$frc.out
[1] 0.981276 0.981276 0.981276 0.981276 0.981276 0.981276 0.981276
[8] 0.981276 0.981276 0.981276
#--------------------------------------------
# SBA
crost(x,h=10,type="sba")$frc.out
[1] 1.013801 1.013801 1.013801 1.013801 1.013801 1.013801 1.013801
[8] 1.013801 1.013801 1.013801
#--------------------------------------------
# Moving Average Croston
crost.ma(x,h=10)$frc.out
[1] 0.9798783 0.9798783 0.9798783 0.9798783 0.9798783 0.9798783 0.9798783
[8] 0.9798783 0.9798783 0.9798783
#--------------------------------------------
# TSB
tsb(x,h=10)$frc.out
[1] 1.03952 1.03952 1.03952 1.03952 1.03952 1.03952 1.03952 1.03952
[9] 1.03952 1.03952
#--------------------------------------------
# IMAPA
imapa(x,h=10)$frc.out
[1] 0.9774082 0.9774082 0.9774082 0.9774082 0.9774082 0.9774082 0.9774082
[8] 0.9774082 0.9774082 0.9774082
#--------------------------------------------
# ADIDA
as.vector(imapa(x,h=10,minimumAL=10+1,maximumAL=10+1)$frc.out)
[1] 0.9556603 0.9556603 0.9556603 0.9556603 0.9556603 0.9556603 0.9556603
[8] 0.9556603 0.9556603 0.9556603