用R预测非周期时间序列

时间:2018-10-22 21:16:38

标签: r time-series arima forecast

在预测非周期性(非季节)时间序列数据时,我面临两个问题。 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)$平均值

我正在得到这个预测

enter image description here

我已经尝试了所有这些软件包,但是没有得到很好的结果。结果都是恒定的,仅预测了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  

0 个答案:

没有答案
相关问题