Package
library(tseries)
library(forecast)
library(TTR)
library(TSA)
MODEL MA (1)
Membangkitkan Data dari Model MA(1)
#1. MANUAL: membangkitkan data dari distribusi normal dan membuat fungsi dari model
#2. ARIMA.SIM
#--------------MA(1) dengan theta 0.9---------------#
#---MANUAL---#
set.seed(11)
e = rnorm(100,0,1) #membangkitkan 100 data dengan nilai tengah 0 dan ragam 1
n = length(e)
theta = 0.9
y.ma1 = c(1:n)
for (i in 2:n){y.ma1[i]= e[i] - theta*e[i-1]} #membuat fungsi dari model MA(1)
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(y.ma1,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "MA(1) dengan theta 0.9")
#Plot ACF dan PACF
acf(y.ma1, lag.max = 20, main = "MA(1) dengan theta 0.9") #cutoff di lag ke-1, korelasinya negatif saat lag ke-1
pacf(y.ma1, lag.max = 20, main = "MA(1) dengan theta 0.9") #tail off
eacf(y.ma1)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o o o o o o o o o o o o
## 1 x x o o o o o o o o o o o o
## 2 x o x o o o o o o o o o o o
## 3 x x x o o o o o o o o o o o
## 4 x x x o o o o o o o o o o o
## 5 x x o x o o o o o o o o o o
## 6 x x o o o o o o o o o o o o
## 7 x x o o o o x o o o o o o o
#Uji stasioneritas
library(tseries)
adf.test(y.ma1) #stasioner
## Warning in adf.test(y.ma1): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: y.ma1
## Dickey-Fuller = -8.0896, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
#Plot y vs y-1
lag1 = y.ma1[-100]
yma1_1 = c(NA, lag1)
plot(yma1_1, y.ma1) #korelasi negatif
#Plot y vs y-2
lag2 = y.ma1[-c(99:100)]
yma1_2 = c(rep(NA,2),lag2)
plot(yma1_2,y.ma1) #menyebar
Membangkitkan MA(1) dengan ARIMA.SIM
#---ARIMA.SIM---#
set.seed(99)
ma1_sim <- arima.sim(list(order = c(0,0,1), ma = 0.9), n = 100)
#0: ordo AR
#0: asumsikan data sudah stasioner
#1: ordo MA
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(ma1_sim,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "MA(1) dengan theta 0.9")
#Uji stasioneritas
adf.test(ma1_sim)
##
## Augmented Dickey-Fuller Test
##
## data: ma1_sim
## Dickey-Fuller = -3.4873, Lag order = 4, p-value = 0.04676
## alternative hypothesis: stationary
#Plot ACF dan PACF
acf(ma1_sim, lag.max = 20, main = "MA(1) dengan theta 0.9") #cutoff di lag ke-1, korelasinya positif saat lag ke-1
pacf(ma1_sim, lag.max = 20, main = "MA(1) dengan theta 0.9") #tail off
eacf(ma1_sim)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o o o o o o x o o o o o
## 1 x x o o o o o o o o o o o o
## 2 x x o o o o o o o o o o o o
## 3 x o x o o o o o o o o o o o
## 4 x x x o o o o o o o o o o o
## 5 x x o o o o o o o o o o o o
## 6 x o o o x x o o o o o o o o
## 7 x o o x o o o o o o o o o o
MODEL MA (2)
Membangkitkan Data dari Model MA(2)
#--------------MA(2) dengan theta1=1 dan theta2=-0.6 ---------------#
#---MANUAL---#
set.seed(77)
e = rnorm(100,0,1)
n = length(e)
theta1 = 1
theta2 = -0.6
y.ma2=c(1:n)
for (i in 3:n){y.ma2[i]= e[i] - theta1*e[i-1] - theta2*e[i-2]} #membuat fungsi dari model MA(2)
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(y.ma2,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "MA(2) dengan theta1=1 dan theta2=-0.6")
#Uji stasioneritas
adf.test(y.ma2)
## Warning in adf.test(y.ma2): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: y.ma2
## Dickey-Fuller = -4.8452, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
#Plot ACF dan PACF
acf(y.ma2, lag.max = 20, main = "MA(2) dengan theta1=1 dan theta2=-0.6") #cutoff di lag ke-2
pacf(y.ma2, lag.max = 20, main = "MA(2) dengan theta1=1 dan theta2=-0.6") #tail off
eacf(y.ma2)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o o o o o o o o o o o o
## 1 x o o o o o o o o o o o o o
## 2 x o x x o o o o o o o o o o
## 3 x x x o 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 x x x o o o x o o o o o o o
## 7 x x o x o o o o o o o o o o
#Plot y vs y-1
lag1 = y.ma2[-100]
yma2_1 = c(rep(NA,1),lag1)
plot(yma2_1, y.ma2) #korelasi negatif
#Plot y vs y-2
lag2=y.ma2[-c(99:100)]
yma2_2=c(rep(NA,2),lag2)
plot(yma2_2,y.ma2) #korelasi positif
#Plot y vs y-3
lag3=y.ma2[-c(98:100)]
yma2_3=c(rep(NA,3),lag3)
plot(yma2_3,y.ma2) #menyebar
Membangkitkan MA(2) dengan ARIMA.SIM
#---ARIMA.SIM---#
set.seed(999)
ma2_sim <- arima.sim(list(order = c(0,0,2), ma = c(1,-0.6)), n = 100)
#0: ordo AR
#0: asumsikan data sudah stasioner
#2: ordo MA
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(ma2_sim,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "MA(2) dengan theta1=1 dan theta2=-0.6")
#Uji stasioneritas
adf.test(ma2_sim)
## Warning in adf.test(ma2_sim): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: ma2_sim
## Dickey-Fuller = -5.7204, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
#Plot ACF dan PACF
acf(ma2_sim, lag.max = 20, main = "MA(2) dengan theta1=1 dan theta2=-0.6") #cutoff di lag ke-2
pacf(ma2_sim, lag.max = 20, main = "MA(2) dengan theta1=1 dan theta2=-0.6") #tail off
eacf(ma2_sim)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 o x o o o x o o o o o o o o
## 1 x x o o o o x o o o o o o o
## 2 x x o o o o o 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 x o o o o o o o o o o
## 5 x o x x o o o o o o o o o o
## 6 x o o x o x o o o x o o o o
## 7 x x o x o o o o o o o o o o
MODEL AR(1)
Membangkitkan Data dari Model AR(1)
#--------------AR(1) dengan phi 0.9---------------#
#---MANUAL---#
set.seed(11)
e = rnorm(100,0,1)
n = length(e)
phi = 0.9
y.ar1 = c(1:n)
for (i in 2:n){y.ar1[i]= phi*y.ar1[i-1]+e[i]} #membuat fungsi dari model AR(1)
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(y.ar1,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "AR(1) dengan phi 0.9")
#Plot ACF dan PACF
acf(y.ar1, lag.max = 20, main = "AR(1) dengan phi 0.9") #tail off
pacf(y.ar1, lag.max = 20, main = "AR(1) dengan phi 0.9") #cut off di lag ke-1
eacf(y.ar1)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x x x x x x x x x x x
## 1 o o o o o o o o o o o o o o
## 2 x x o o o o o o o o o o o o
## 3 o o o o 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 o o o o o o o o o o o o o o
## 6 x o o o o o o o o o o o o o
## 7 x x o o o o o o o o o o o o
#Plot y vs y-1
lag1 = y.ar1[-100]
yar1_1 = c(NA,lag1)
plot(yar1_1, y.ar1) #korelasi positif
#Plot y vs y-2
lag2 = y.ar1[-c(99:100)]
yar1_2 = c(rep(NA,2),lag2)
plot(yar1_2,y.ar1) #korelasi positif
#Plot y vs y-3
lag3 = y.ar1[-c(98:100)]
yar1_3 = c(rep(NA,3),lag3)
plot(yar1_3,y.ar1) #korelasi positif
Membangkitkan AR(1) dengan ARIMA.SIM
#---ARIMA.SIM---#
set.seed(22)
ar1_sim <- arima.sim(list(order = c(1,0,0), ar = 0.9), n = 100)
#1: ordo AR
#0: asumsikan data sudah stasioner
#0: ordo MA
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(ar1_sim,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "AR(1) dengan phi 0.9")
#Plot ACF
acf(ar1_sim, lag.max = 20, main = "AR(1) dengan phi 0.9") #tail off
pacf(ar1_sim, lag.max = 20, main = "AR(1) dengan phi 0.9") #cutoff di lag ke-1
eacf(ar1_sim)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x x x x x x x x x x x
## 1 o o o o o o o x o o o x o o
## 2 x x o o o o o x o o o o o o
## 3 x x o o o o o x o o o o o o
## 4 x o x o o o o x o o o o o o
## 5 x o o o o o o o o o o o o o
## 6 x x o o o o o o o o o o o o
## 7 o o x o o x o o o o o o o o
MODEL AR(2)
Membangkitkan Data dari Model AR(2)
#--------------AR(2) dengan phi1=0.5 dan phi2=0.25 ---------------#
#---MANUAL---#
set.seed(33)
e = rnorm(100,0,1)
n = length(e)
phi1 = 0.5
phi2 = 0.25
y.ar2=c(1:n)
for (i in 3:n){y.ar2[i] = phi1*y.ar2[i-1]+phi2*y.ar2[i-2]+e[i]} #membuat fungsi dari model AR(2)
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(y.ar2,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "AR(2) dengan phi1=0.5 dan phi2=0.25")
#Plot ACF
acf(y.ar2, lag.max = 20, main = "AR(2) dengan phi1=0.5 dan phi2=0.25") #tail off
pacf(y.ar2, lag.max = 20, main = "AR(2) dengan phi1=0.5 dan phi2=0.25") #cutoff di lag ke-2
eacf(y.ar2)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x x o x o o o o o o o
## 1 x o o o x x o o o o o o o o
## 2 x x o o x o o o o o o o o o
## 3 x o o o x o o o o o o o o o
## 4 x o o o x o o o o o o o o o
## 5 o x x x x o o o o o o o o o
## 6 o x o o x o o o o o o o o o
## 7 x o o o x o o o o o o o o o
#Plot y vs y-1
lag1= y.ar2[-100]
yar2_1 = c(rep(NA,1),lag1)
plot(yar2_1, y.ar2) #korelasi positif
#Plot y vs y-2
lag2=y.ar2[-c(99:100)]
yar2_2=c(rep(NA,2),lag2)
plot(yar2_2,y.ar2) #korelasi positif
#Plot y vs y-3
lag3=y.ar2[-c(98:100)]
yar2_3=c(rep(NA,3),lag3)
plot(yar2_3,y.ar2) #korelasi positif
Membangkitkan AR(2) dengan ARIMA.SIM
#---ARIMA.SIM---#
set.seed(999)
ar2_sim <- arima.sim(list(order = c(2,0,0), ar =c(0.5,0.25)), n = 100)
#2: ordo AR
#0: asumsikan data sudah stasioner
#0: ordo MA
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(ar2_sim,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "AR(2) dengan phi1=0.5 dan phi2=0.25")
#Plot ACF dan PACF
acf(ar2_sim, lag.max = 20, main = "AR(2) dengan phi1=0.5 dan phi2=0.25") #tail off
pacf(ar2_sim, lag.max = 20, main = "AR(2) dengan phi1=0.5 dan phi2=0.25") #cut off di lag ke-2
eacf(ar2_sim)
## 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 o o o o o o
## 1 x o o o o o o o o o o o o o
## 2 x o o o o o o o o o o o o o
## 3 x x x o o o o o o o o o o o
## 4 o x x o o o o o o o o o o o
## 5 o o x o o o o o o o o o o o
## 6 x x x o o o o o o o o o o o
## 7 o o x x x o o o o o o o o o
MODEL ARMA (1,1)
Membangkitkan Data dari Model ARMA(1,1)
#--------------ARMA(1,1) dengan phi1=0.8 dan theta1=0.7 ---------------#
#---MANUAL---#
set.seed(33)
e = rnorm(100,0,1)
n = length(e)
phi1 = 0.8
theta1 = 0.7
y.arma=c(1:n)
for (i in 3:n){y.arma[i] = phi1*y.arma[i-1]- theta1*e[i-1]+e[i]} #membuat fungsi dari model ARMA(1,1)
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(y.arma,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "AR(2) dengan phi1=0.5 dan phi2=0.25")
#Plot ACF
acf(y.arma, lag.max = 20, main = "ARMA(1,1) dengan phi1=0.8 dan theta1=0.5") #tail off
pacf(y.arma, lag.max = 20, main = "ARMA(1,1) dengan phi1=0.8 dan theta1=0.5") #cut off di lag ke-1
eacf(y.arma)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 o o o o x o o o o o o o o o
## 1 x o o o x o o o o o o o o o
## 2 x x o o x x o o o o o o o o
## 3 x o o o x x o o o o o o o o
## 4 x o o o x x o o o o o o o o
## 5 x o o o o o o o o o o o o o
## 6 x x o o o o o o o o o o o o
## 7 x x o o o o o o o o o o o o
Membangkitkan ARMA(1,1) dengan ARIMA.SIM
#---ARIMA.SIM---#
set.seed(999)
arma_sim <- arima.sim(list(order = c(1,0,1), ar =0.8, ma=0.7), n = 100)
#1: ordo AR
#0: asumsikan data sudah stasioner
#1: ordo MA
Eksplorasi Data - Stasioneritas Data
#Plot time series
plot(arma_sim,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data",
main = "AR(2) dengan phi1=0.5 dan phi2=0.25")
#Plot ACF dan PACF
acf(arma_sim, lag.max = 20, main = "ARMA(1,1) dengan phi1=0.8 dan theta1=0.5") #tail off
pacf(arma_sim, lag.max = 20, main = "AR(2) dengan phi1=0.5 dan phi2=0.25") #cut off di lag ke-2
eacf(arma_sim)
## 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 o o o o o o
## 1 x o x o x o o o o o o o o o
## 2 x o x o o o o o o o o o o o
## 3 x x x o o o o o o o o o o o
## 4 x x x o o o o o o o o o o o
## 5 x x x o o o o o o o o o o o
## 6 x o x x x o o o o o o o o o
## 7 x x x o x o o o o o o o o o