Anda di halaman 1dari 18

TUGAS ANALISIS DERET WAKTU

NAMA : NENENG JUNITA LANDE


NIM : F1A220017
KELAS :A
Soal:
1. Melalui program R, bangkitkan data yt (n=125), berupa model ARIMA(1,2,0)
dengan μ = 0.25, ∅=0.65, serta et ~ Normal(0,1). Gunakan 100 data terakhir
dan lakukan proses berikut:
a) Identifikasikanlah kestasioneran data, serta lakukan proses differencing
jika data tidak stasioner.
b) Selanjutnya, berdasarkan ACF, PACF, dan EACF, identifikasilah kandidat
model yang sesuai.
c) Berdasarkan kandidat model tersebut, tentukan model terbaik berdasarkan
nilai AIC-nya.
d) Bandingkan penduga parameter yang diperoleh untuk model terbaik pada
poin (c) tersebut dengan nilai parameter yang sesungguhnya. Apa
kesimpulan Anda.
2. Melalui program R, bangkitkan data (n=125) berupa model ARIMA(2,1,2)
dengan μ = 0.25, ∅ 1=−0.75, ∅ 2=−0.60, θ1=0.45, θ2=−0.85 serta et ~
Normal(0,1). Gunakan 100 data terakhir sebagai data Yt dan selanjutnya
lakukan proses berikut:
a) Identifikasilah kandidat model yang sesuai.
b) Berdasarkan kandidat model tersebut, tentukanlah model terbaik
berdasarkan nilai AIC-nya.
c) Bandingkan penduga parameter yang diperoleh untuk model terbaik pada
poin (b) tersebut dengan nilai parameter yang sesungguhnya. Apa
kesimpulan Anda?
d) Berdasarkan model terbaik tersebut, tentukan nilai ramalan untuk 5 waktu
kedepan.
Jawab:
1. Membangkitkan data Yt (n=125), berupa model ARIMA(1,2,0) dengan
Program:
library("forecast")
library("TTR")
library("TSA")
library("graphics")
library("tseries")

#Membangkitkan y, Arima(1,2,0):mu=0.25,phi=0.65
set.seed(101)
e<-rnorm(125,0,1)
n<-length(e)

mu<-0.15
shi<-0.55

#Peckage arima di R, tetha bertanda positif,kembali dari


cryer
#misal di R,MA(1):y = mu+e[i]+tetha*e[i-1]
y <- c(1:n)
for(i in 4:n)
{
y[i]<- mu + 2*y[i-1]-y[i-2]+shi*y[i-1] - 2*shi*y[i-
2]+shi*y[i-3] + e[i]}
#cryer
y <- y[-c(1:25)]
#Membuang Data 25
plot.ts(y,lty=1,xlab="waktu", ylab="Data Asal(y)")
points(y,col="green")
acf(y,lag.max=20)

Output 1:
Output 2:

a. Identifikasi kestasioneran data, serta melakukan proses differencing jika


data tidak stasioner
Program:
#Cek Kestasioneran
y.dif1 <- diff(y,difference=1)

#Differencing ordo 1
plot.ts(y.dif1, lty=1, xlab="waktu", ylab="Data y.dif1
ordo 1")
points(y.dif1,col="red")
acf(y.dif1,lag.max = 20)
adf.test(y.dif1, alternative =
c("stationary"),k=trunc((length(y)-1)^(1/3)))

Output 1:
Output 2:

#Uji ADF
Augmented Dickey-Fuller Test

data: y.dif1
Dickey-Fuller = -1.6871, Lag order = 4, p-value = 0.7061
alternative hypothesis: stationary

Interpretasi:
Berdasarkan plot diatas data yang dibangkitkan merupakan data
yang tidak stasioner. Hal ini diindikasikan berdasarkan pola yang
ditunjukkan oleh plot Correlogram yaitu pola yang menurun secara
perlahan. Dan berdasarkan hasil uji ADF dengan taraf signifikansi α =5
diatas dapat diketahui bersama bahwa, p−value=0.7061 > α = 0.05
sehingga keputusan yang diambil adalah Terima H0 artinya data yang
telah dibangkitkan dan dilakukan differencing 1 kali merupakan data yang
tidak stasioner. Sehingga untuk data perlu dilakukan proses differencing
ordo 2
Program:
#Cek Kestasioneran 2
y.dif2 <- diff(y,difference=2)

#Differencing ordo 2
plot.ts(y.dif2, lty=1, xlab="waktu", ylab="Data y.dif1
ordo 1")
points(y.dif2,col="purple")
acf(y.dif2,lag.max = 20,col="purple")
adf.test(y.dif2,alternative=c("stationary"),k=trunc((leng
th(y)-1)^(1/3)))
Output 1:

Output 2:

Augmented Dickey-Fuller Test

#Uji ADF
data: y.dif2
Dickey-Fuller = -3.8736, Lag order = 4, p-value = 0.01831
alternative hypothesis: stationary

Interpretasi:
Berdasarkan plot diatas data yang telah dibangkitkan dan dilakukan
differencing 2 kali merupakan data yang kemungkinan stasioner. Hal ini
diindikasikan berdasarkan pola yang ditunjukkan oleh plot Correlogram
yaitu bahwa pola yang terdapat lag. Maka, untuk memastikan hal ini akan
dilakukan uji ADF yang mana berdasarkan ujinya dapat kita ambil
kesimpulan bahwa p−value = 0.026735 < α = 0.05 sehingga keputusan
yang diambil adalah Tolak H0 artinya data yang telah dibangkitkan dan
dilakukan differencing 2 kali merupakan data yang stasioner.
b. Identifikasi kandidat model yang sesuai berdasarkan ACF, PACF, dan
EACF
Program:
#Pengidentifikasian model

acf(y.dif2, lag.max=20, col="red")


pacf(y.dif2, lag.max=20, col="purple")
eacf(y.dif2)

Output ACF:

Output PACF:

Output EACF:
> eacf(y.dif2)
AR/MA
0 1 2 3 4 5 6 7 8 9 10 11 12 13
0 x x o o o o o o o o o o o o
1 x x x 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 x o o o o o o o o o o o o
4 x x o o o o o o o o o o o o
5 x o x 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 o o x o o o o o o o o o o

Interpretasi:
Berdasarkan dari ketiga pengindetifikasian model diatas dapat kita
lihat bahwa hasilnya berbeda-beda yaitu ACF memiliki model yang
berbeda dengan PACF.
c. Menentukan model terbaik berdasarkan nilai AIC-nya
Program:
#Pendugaan parameter dan penentuan model terbaik
Berdasarkan kandidat Model hasil identifikasi
arima(y.dif2, order=c(2,0,0),method="ML") #ARIMA(2,2,0)
arima(y.dif2, order=c(1,0,1),method="ML") #ARIMA(1,2,1)
arima(y.dif2, order=c(1,0,0),method="ML") #ARIMA(1,2,0)

#Plot dan Nilai Dugaan Berdasarkan Model Terbaik


#ARIMA(1,2,0)
model <- arima(y.dif2, order=c(1,0,0),method="ML")

Output:
Interpretasi:
Berdasarkan dari ketiga model diatas dapat kita ambil model terbaik
berdasarakn nilai AIC-nya yaitu ARIMA (1,2,0) dengan Nilai AIC =
277.77 seperti yang dapat kita lihat dari hasil output diatas.
d. Membandingkan penduga parameter yang diperoleh untuk model terbaik
pada poin (c) dengan nilai parameter yang sesungguhnya
Program:
#ARIMA(1,2,0)
model <- arima(y.dif2, order=c(1,0,0),method="ML")
model
dugaan <- fitted(model)
cbind(y.dif2,dugaan)

plot.ts(y.dif2, xlab="waktu", ylab="Data Diff.Y Ordo 2")


points(y.dif2)
par(col="red")
lines(dugaan)
par(col="pink")

Output:

Output 2:
Output 3:

Interpretasi:
Berdasarkan hasil diatas penduga parameter ^μ=0.2899 dengan nilai
∅^ =0.5654 jika dibandingkan dengan data Y yang dibangkitkan yaitu
ARIMA(1,2,0) dengan parameter ^μ=0.25 dengan nilai ∅=0.65 sigma^2
estimated as 0.9529 adalah nilai dugaan bagi σ 2e. Model terbaik yang
diperoleh yaitu model ARIMA(1,2,0) adalah model yang sama dengan
model awal yang digunakan untuk membangkitkan data.
2. Membangkitkan data (n=125) berupa model ARIMA(2,1,2) dengan μ = 0.25,
∅ 1=−0.75, ∅ 2=−0.60, θ1=0.45, θ2=−0.85 serta et ~ Normal(0,1).
Program:
library(forecast)
library(TTR)
library(TSA)
library(graphics)

#Membangkitkan y, ARIMA(2,1,2): mu= 0.25, shi=0.65, theta = 1


set.seed(1001)
e <- rnorm(125,0,1)
n <- length(e)
mu <- 0.25
shi1 <- -0.75
shi2 <- -0.60
theta1 <- 0.45
theta2 <- -0.85

y <- c(1:n)
for (i in 4:n){
y[i] <- mu + y[i-1] + shi1*y[i-1] - shi1*y[i-2] + shi2*y[i-
2] - shi2*y[i-3] +e[i] - theta1*e[i-1] - theta2*e[i-2]
}

y <- y[-c(1:25)]
plot.ts(y, lty=1, xlab="Waktu", ylab="Data Asal (y)")
points(y)
acf(y, lag.max=20) #cek kestasioneran

y.dif1 <- diff(y, difference=1)


plot.ts(y.dif1, lty=1, xlab="Waktu", ylab="Data Y.Diff Ordo
1")
points(y.dif1)

#Pengindentifikasian Model
acf(y.dif1, lag.max=20)
pacf(y.dif1, lag.max=20)
eacf(y.dif1)

#Pendugaan Parameter dan Penentuan Model Terbaik


# Berdasarkan Kandidat Model Hasil Identifikasi
arima(y.dif1, order=c(1,0,0),method="ML") #ARIMA(1,1,0)
arima(y.dif1, order=c(2,0,0),method="ML") #ARIMA(2,1,0)
arima(y.dif1, order=c(2,0,2),method="ML") #ARIMA(2,1,2)
#Plot dan nilai dugaan berdasarkan model terbaik
model <- arima(y.dif1, order=c(2,0,2),method="ML")
dugaan <- fitted(model)
cbind(y.dif1,dugaan)
plot.ts(y.dif1, xlab="Waktu", ylab="Data Diff.y ordo 1")
points(y.dif1)
par(col="blue")
lines(dugaan)
prediksi <- forecast(dugaan,h=5);prediksi

Program:
library(forecast)
library(TTR)
library(TSA)
library(graphics)

#Membangkitkan y, ARIMA(2,1,2): mu= 0.25, shi=0.65, theta = 1


set.seed(1001)
e <- rnorm(125,0,1)
n <- length(e)
mu <- 0.25
shi1 <- -0.75
shi2 <- -0.60
theta1 <- 0.45
theta2 <- -0.85

y <- c(1:n)
for (i in 4:n){
y[i] <- mu + y[i-1] + shi1*y[i-1] - shi1*y[i-2] + shi2*y[i-
2] - shi2*y[i-3] +e[i] - theta1*e[i-1] - theta2*e[i-2]
}

y <- y[-c(1:25)]
plot.ts(y, lty=1, xlab="Waktu", ylab="Data Asal (y)")
points(y)
acf(y, lag.max=20)

#cek kestasioneran
y.dif1 <- diff(y, difference=1)
plot.ts(y.dif1, lty=1, xlab="Waktu", ylab="Data Y.Diff Ordo
1")
points(y.dif1)

Output 1:
Output 2:

Output Cek Kestasioneran:


a. Mengidentifikasi Kandidata model yang sesuai

Program:
#Pengindentifikasian Model
acf(y.dif1, lag.max=20)
pacf(y.dif1, lag.max=20)
eacf(y.dif1)

Output ACF:

Output PACF:

Output EACF:
b. Menentukan model terbaik berdasarkan nilai AIC-nya
Program:
#Pendugaan Parameter dan Penentuan Model Terbaik
# Berdasarkan Kandidat Model Hasil Identifikasi

arima(y.dif1, order=c(1,0,0),method="ML") #ARIMA(1,1,0)


arima(y.dif1, order=c(2,0,0),method="ML") #ARIMA(2,1,0)
arima(y.dif1, order=c(2,0,2),method="ML") #ARIMA(2,1,2)
#Plot dan nilai dugaan berdasarkan model terbaik
model <- arima(y.dif1, order=c(2,0,2),method="ML")

Output:
c. Melakukan analisis diagnostic pada model terbaik
Program:
#Plot dan nilai dugaan berdasarkan model terbaik
model <- arima(y.dif1, order=c(2,0,2),method="ML")
model
dugaan <- fitted(model)
cbind(y.dif1,dugaan)

Output 1:

Output 2:
> cbind(y.dif1,dugaan)

Time Series:
Start = 1
End = 99
Frequency = 1
y.dif1 dugaan
1 -2.22665437 -1.15764185
2 2.53291450 2.01126204
3 -2.59828702 -1.41557716
4 -0.43995216 1.34191808
5 2.81856329 2.08939878
6 -2.89950431 -3.24537921
7 0.89935054 1.20916110
8 3.98293600 1.65304468
9 -6.40167702 -4.73510198
10 7.23882431 5.59012578
11 -1.59945257 -3.82775956
12 -2.62319626 -2.31688644
13 2.94288198 4.96734845
14 0.68818064 0.26029611
15 -4.58566189 -3.75960795
16 4.33903399 4.04052243
17 -0.87462641 -1.35264954
18 -2.00719732 -1.47345690
19 2.69136631 2.85610583
20 -0.44027791 -1.04347848
21 -3.10824554 -1.35631413
22 4.44196542 4.17794726
23 -2.30608334 -2.98092627
24 2.67402892 -0.58433766
25 -2.50142748 -1.65142627
26 2.04922277 3.77611375
27 -1.45308028 0.24256474
28 0.21661546 -0.35198773
29 -0.56673100 -0.85288369
30 1.78262158 0.85180023
31 -1.82746543 -1.03977074
32 2.67318879 1.80092102
33 0.08178984 -1.87990661
34 -2.04192285 -1.57334440
35 2.91757301 3.56693440
36 -0.05820777 -0.89158837
37 -3.06763995 -2.27784451
38 3.13482472 3.63498671
39 0.40629354 -0.84360374
40 -0.93703099 -2.83216035
41 2.39989996 0.75440543
42 0.49483415 -0.33359788
43 0.86801911 -0.50228717
44 -1.49747468 -0.71098155
45 0.97010231 2.41341249
46 -0.11012120 0.40873412
47 -1.84879559 -1.14544204
48 -0.38281917 1.59116831
49 3.60503242 1.94733832
50 -5.41304554 -4.74439182
51 4.53746739 4.02148222
52 -2.07872229 -1.04698759
53 -0.36752581 0.28379673
54 1.19974354 1.10080550
55 -0.73920052 -1.05988797
56 0.25600160 0.04169557
57 0.62779068 0.58806570
58 -0.81193820 -0.22253666
59 0.17176367 0.82761685
60 1.10824904 0.38638097
61 -2.35638170 -1.61007022
62 3.32573851 2.36268627
63 -3.04648796 -2.09289275
64 0.67547907 1.98651583
65 1.48584599 1.25582967
66 -3.24921018 -2.45053400
67 1.36907423 2.44091330
68 1.88723145 0.85458494
69 -4.71604910 -3.34095286
70 5.06125762 4.27880213
71 -3.62516863 -2.53650422
72 1.54175927 1.40013335
73 0.84797792 0.05855706
74 -0.75473726 -1.52921262
75 0.72602555 0.58041075
76 -0.24483772 0.65969846
77 -0.66620014 0.60503517
78 2.26779196 0.76058150
79 -2.05047303 -2.93734026
80 1.81916995 1.31380488
81 -0.44149296 0.45359100
82 0.96663699 0.45493413
83 -0.95251880 -1.26348981
84 -0.34164214 0.67341823
85 0.85185563 1.77708045
86 -1.33904356 -0.58569061
87 -0.70935700 0.38246325
88 1.97353987 1.41525699
89 -1.72357330 -2.05403811
90 1.30469737 0.73123268
91 -0.51967364 0.16213594
92 0.01307118 0.73632549
93 0.65403941 0.30483710
94 -1.79323826 -1.04966697
95 3.27286754 1.87892288
96 -1.26940725 -2.57888159
97 1.68035132 -0.12176031
98 0.01366588 -0.18724818
99 1.03410859 0.69897185

d. Membandingkan penduga parameter yang diperoleh untuk model terbaik


pada poin (b) dan (c) tersebut dengan nilai parameter yang sesungguhnya
Program:
plot.ts(y.dif1, xlab="Waktu", ylab="Data Diff.y ordo 1")
points(y.dif1)
par(col="green")
lines(dugaan)

Output 1:

Output 2:
Interpretasi:
Berdasarkan dari hasil perbandingan antara penduga parameter yang
diperoleh untuk model terbaik dengan parameter yang sesungguhnya dapat
kita lihat pada hasil output diatas dimana pada output pertama dapat kita
lihat bahwa itu termasuk kedalam penduga parameter berdasarkan model
terbaik menurut AIC-nya. Sedangkan pada hasil output kedua merupakan
hasil dari analisis diagnostic pada model terbaik.Sehingga dari kedua
model diatas terdapat suatu perbedaan.
e. Menentukan nilai ramalan untuk 5 waktu kedepan berdasarkan model
terbaik
Program:
prediksi <- forecast(dugaan,h=5);prediksi

Output:

Anda mungkin juga menyukai