R06 STA1341-ARIMA

Package

library("TTR")
library("TSA")
library("graphics")
library("forecast")

Model ARIMA(2,1,2)

Membangkitkan Data

#Kasus ARIMA(2,1,2)
set.seed(1234) 
e<-rnorm(175,0,1) 
n<-length(e) 
#Pembangkitan y
mu<-1.25
phi1<-0.6
phi2<--0.75 
tetha1<--0.3
tetha2<-0.65 
y<-c(1:n) 
for (i in 4:n) {y[i]<-mu+((1+phi1)*y[i-1])+((phi2-phi1)* y[i-2])-phi2*y[i-3]+e[i]
-tetha1* e[i-1]-tetha2*e[i-2]}

y<-y[-c(1:25)] 

Eksplorasi Data

#b. plot ts, korelogram, uji ADF
plot.ts(y,lty=1,ylab=expression(Y[t]))

acf(y,lag.max = 20)

Stasioneritas dan Differencing

#c differencing
y.dif1<-diff(y,differences = 1) 
yc<-y[c(-1)]
y.dif1c<-(yc-y)
## Warning in yc - y: longer object length is not a multiple of shorter object
## length
y.dif1c<-y.dif1c[c(-150)]
#d identifikasi stasioneritas
plot.ts(y.dif1,lty=1,ylab=expression(Ydif[t]))

acf(y.dif1,lag.max = 20)

plot.ts(y.dif1c,lty=1,ylab=expression(Ydif[t]))

acf(y.dif1c,lag.max = 20)

Penentuan Ordo ARIMA

#penentuan ordo
acf(y.dif1,lag.max = 20)

pacf(y.dif1,lag.max = 20) 

eacf(y.dif1)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x o x x o x o o o  o  o  o 
## 1 x x x o x x o x o x o  o  o  o 
## 2 o o o o o o x o o o o  o  o  o 
## 3 x o o o o o o o o o o  o  o  o 
## 4 x o o o o o o o o o o  o  o  o 
## 5 o x o o o o o o o o o  o  o  o 
## 6 o x x x o o o o o o o  o  o  o 
## 7 x x x x o o o o o o o  o  o  o

Pembangkitan ARIMA (2,1,2) dengan arima.sim

#dengan arima.sim
set.seed(999)
y1_sim <- arima.sim(list(order = c(2,1,2), ar=c(0.6,-0.75),ma = c(-0.3,0.65)), n = 175)

y1_sim<-y1_sim[-c(1:25)]

Eksplorasi Data

#b. plot ts, korelogram, uji ADF
plot.ts(y1_sim,lty=1,ylab=expression(Y[t]))

acf(y1_sim,lag.max = 20)

Stasioneritas dan Differencing

#c differencing
y1sim.dif1<-diff(y1_sim,differences = 1) 

#d identifikasi stasioneritas
plot.ts(y1sim.dif1,lty=1,ylab=expression(Ydif[t]))

acf(y1sim.dif1,lag.max = 20)

Penentuan Ordo ARIMA

#penentuan ordo
acf(y1sim.dif1,lag.max = 20)

pacf(y1sim.dif1,lag.max = 20) 

eacf(y1sim.dif1)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o x o o o o o o o  o  o  o 
## 1 x o o x o o o o o o o  o  o  o 
## 2 x x o x o o o o o o o  o  o  o 
## 3 x x o o o o o o o o o  o  o  o 
## 4 x o x x o o o o o o o  o  o  o 
## 5 o x o o o o o o o o o  o  o  o 
## 6 o x x o o o o o o o o  o  o  o 
## 7 x x x o o o o o o o o  o  o  o

Model ARIMA(1,2,2)

Membangkitkan Data

set.seed(1234) 
e<-rnorm(175,0,1) 
n<-length(e) 
#Pembangkitan y
mu.2<-0.15
phi.2<-0.6
tetha1.2<-0.55
tetha2.2<-0.65 
y.2<-c(1:n) 
for (i in 4:n) {y.2[i]<-mu.2+((2+phi.2)*y.2[i-1])-((1+(2*phi.2))* y.2[i-2])+(phi.2*y.2[i-3])+e[i]
-tetha1* e[i-1]-tetha2*e[i-2]}
y.2<-y.2[-c(1:25)] 

Eksplorasi Data

#b. plot ts, korelogram, uji ADF
plot.ts(y.2,lty=1,ylab=expression(Y[t]))

acf(y.2,lag.max = 20)

Stasioneritas dan Differencing

#c differencing
y2.dif1<-diff(y.2,differences = 1) 

#d identifikasi stasioneritas
plot.ts(y2.dif1,lty=1,ylab=expression(Ydif[t]))

acf(y2.dif1,lag.max = 20)

y2.dif2<-diff(y.2,differences = 2)
y2c.dif2<-diff(y2.dif1,differences=1)
plot.ts(y2.dif2,lty=1,ylab=expression(Ydif[t]))

acf(y2.dif2,lag.max = 20)

Penentuan Ordo ARIMA

#penentuan ordo
acf(y2.dif2,lag.max = 20)

pacf(y2.dif2,lag.max = 20) 

eacf(y2.dif2)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x x x x o o o o  o  o  o 
## 1 o o o o o o o o o o o  o  o  o 
## 2 x o o x o o o o o o o  o  o  o 
## 3 o o o x o o o o o o o  o  o  o 
## 4 x o x o o o o o o o o  o  o  o 
## 5 x o x o o o x o o o o  o  o  o 
## 6 o o x o o o o o o o o  o  o  o 
## 7 o x x o o x o o o o o  o  o  o

Pembangkitan ARIMA (1,2,2) dengan arima.sim

#dengan arima.sim
set.seed(999)
y2_sim <- arima.sim(list(order = c(1,2,2), ar=phi.2,ma = c(tetha1.2,tetha2.2)), n = 175)

y2_sim<-y2_sim[-c(1:25)]

Eksplorasi Data

#b. plot ts, korelogram, uji ADF
plot.ts(y2_sim,lty=1,ylab=expression(Y[t]))

acf(y2_sim,lag.max = 20)

Stasioneritas dan Differencing

#c differencing
y2sim.dif1<-diff(y2_sim,differences = 1) 

#d identifikasi stasioneritas
plot.ts(y2sim.dif1,lty=1,ylab=expression(Ydif[t]))

acf(y2sim.dif1,lag.max = 20)

y2sim.dif2<-diff(y2_sim,differences = 2) 
plot.ts(y2sim.dif2,lty=1,ylab=expression(Ydif[t]))

acf(y2sim.dif2,lag.max = 20)

Penentuan Ordo ARIMA

#penentuan ordo
acf(y2sim.dif2,lag.max = 20)

pacf(y2sim.dif2,lag.max = 20) 

eacf(y2sim.dif2)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x o o o o x o o  o  o  o 
## 1 x x o o x o o o o o o  o  o  o 
## 2 x x x o o x o o o o o  o  o  o 
## 3 x x x o o x o o o o o  o  o  o 
## 4 x x o o x x o o o o o  o  o  o 
## 5 x o x o o x o o o o o  o  o  o 
## 6 x x o x o x o o o o o  o  o  o 
## 7 o x o o o x o o o o o  o  o  o