Как вернуть прогнозируемые значения в исходный масштаб после использования diff () и моделирования с помощью функций nnetar () - PullRequest
0 голосов
/ 12 марта 2019

У меня есть серия, которая является нестационарной серией.Я проанализировал его стационарность с помощью теста Аугментированного Дики-Фуллера.Я хотел бы сделать модель прогнозирования, используя функцию nnetar () в пакете прогноза для моей серии.Поскольку у ряда есть нестационарный образец, я взял разницу, используя функцию diff ().Но после создания модели я не знаю, как вернуть прогнозируемые значения в исходный масштаб.спасибо за любую помощь.

Это пример моего кода в R:

library(forecast)
Var<-rnorm(100,mean=18689142,sd=4795169)

Var <- ts( Var , start = c(2002, 3), frequency = 12 ) # Seasonal series

START<-c(2002, 3) #First address in model 
END<- c(2009,12)  #Last address in model #End point of modeling

install.packages("fUnitRoots")
library(fUnitRoots)
fUnitRoots::adfTest(Var)

######## Make a differenced series##############

Vardf <- diff(Var,lag=frequency(Var),differences=1)

#########################  Model window ###########################
ModelVar<- window(Vardf, start =START , end =END, extend=TRUE)

Acf(Vardf, calc.ci=T, lag.max=length(ModelVar))
Pacf(Vardf , calc.ci=T, lag.max=length(ModelVar))

###################### NNAR model############################# 
NARfit <- nnetar(ModelVar,2,1,  repeats=20 ,lambda="auto")   

###############################  Output plots of model ############## 

Acf(residuals(NARfit) [!is.na(residuals(NARfit))]) 
Pacf(residuals(NARfit) [!is.na(residuals(NARfit))])

########################Test of residuals independency#############
library(portes)
#LjungBox(residuals(NARfit) [!is.na(residuals(NARfit))], lags=seq(1,50,2), order=0)
Box.test(residuals(NARfit) [!is.na(residuals(NARfit))], type="Ljung-Box")

###################################### Diagnostic plots ##########################

plot(ModelVar ,fitted(NARfit) )

reg= lm(fitted(NARfit)~ ModelVar)
abline(reg, col="red", lwd=2 ) # regression line (y~x)
summary(reg)

sigma2<- var((residuals(NARfit) [!is.na(residuals(NARfit))] ))
rs <- NARfit$resid
stdres <- rs/sqrt(sigma2)
plot(fitted(NARfit), stdres) 

###################################### Forecasting step ##############################
forecast(NARfit, h=12, PI=TRUE)
...