Прогноз непериодических временных рядов с R

У меня две проблемы с прогнозированием непериодических (несезонных) данных временных рядов. 1- Я хочу прогнозировать около 230 образцов с 102 тренировками 2- как уже упоминалось, эти данные не являются периодическими, и я не получаю хороших результатов.

Я пытался использовать пакет прогноза (ETS), но результат является линейным. Кроме того, я попробовал 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)

Используя этот код: результат <- прогноз (ets (x, модель = "ZZZ", демпфированный = ИСТИНА), 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  

0 ответов

Другие вопросы по тегам