Penerapan Model ARIMA · Uji Ljung - Box - Pierce ( modified Box - Pierce) Secara analitik, uji ini...
Transcript of Penerapan Model ARIMA · Uji Ljung - Box - Pierce ( modified Box - Pierce) Secara analitik, uji ini...
Dr. Kusman Sadik, M.Si
Sekolah Pascasarjana Departemen Statistika IPB
Semester Ganjil 2019/2020
Analisis Deret Waktu (STK 651)
IPB University─ Bogor Indonesia ─ Inspiring Innovation with Integrity
Penerapan Model ARIMA
(Bagian II)
1. Lakukan proses pembedaan (differencing) sebanyak
dua kali pada data asal Yt sehingga menjadi Wt
dengan persamaan Wt = (1 – B)2Yt.
2. Lakukan pendugaan parameter dengan model AR(1)
berdasarkan data yang yang sudah di-differencing
pada poin (1) di atas yaitu Wt.
2
Analisis Sisaan Sisaan = Nilai Aktual – Nilai Prediksi
Apabila model ARIMA(p, d, q) benar dan dugaan parameter
sangat dekat ke nilai yang sebenarnya maka sisaan akan
memiliki sifat seperti yang diasumsikan pada et, yaitu:
menyebar bebas (independent) dan identik
et ~ N(0, e2)
3
Pemeriksaan asumsi tersebut dapat dilakukan secara deskriptif
maupun analitik. Secara deskriptif dapat dilakukan sebagai
berikut:
Kebebasan / independent : plot te dengan t
Kenormalan / normality : plot te dengan normal score
(quantile-quantile plot)
4
Uji Ljung-Box-Pierce (modified Box-Pierce)
Secara analitik, uji ini dapat digunakan untuk memeriksa asumsi
kebebasan antar et (independence) berdasarkan autokorelasi
pada et.
H0 : antar et tidak berkorelasi (bebas)
H1 : antar et berkorelasi
Apabila H0 diterima maka dapat dikatakan bahwa model
ARIMA yang digunakan adalah layak.
5
H0 : antar et tidak berkorelasi (bebas)
H1 : antar et berkorelasi
Q* =
K
k
ke
kn
rnn
1
2
)(ˆ
)2(
n = banyaknya data sisaan, te
)(ˆ
ker = autokorelasi te dengan kte ˆ
Tolak H0 jika Q* > 2(db = K – p – q)
Nilai p dan q dari model ARIMA(p, d, q)
Uji Ljung-Box-Pierce (modified Box-Pierce)
6
Overfitting
Diagnostik model dapat pula dilakukan melalui overfitting.
Misalnya : Jika teridentifikasi AR(2) mungkin bisa dilakukan
overfitting dengan AR(3).
Pada kasus tersebut, AR(2) dipilih jika :
Penduga parameter tambahan (3) tidak nyata / tidak
signifikan.
Penduga parameter 1 dan 2 tidak mengalami perubahan
secara signifikan antara AR(2) dengan AR(3).
7
# Pemodelan ARIMA(1,1,1)
library("forecast")
library("TTR")
library("TSA")
library("graphics")
# Membangkitkan y, ARIMA(1,1,1): mu = 0.15, phi = 0.55, tetha = -0.75
set.seed(1001)
e <- rnorm(150,0,1)
n <- length(e)
mu <- 0.15
phi <- 0.55
tetha <- -0.75
y <- c(1:n)
for (i in 3:n)
{ y[i] <- mu + (1+phi)*y[i-1] - phi*y[i-2] + e[i] - tetha*e[i-1]}
y <- y[-c(1:50)] # membuang 50 data pertama
plot.ts(y, lty=1, xlab="Waktu", ylab="Data Asal (y)")
points(y)
8
acf(y, lag.max=20) # cek kestasioneran
y.dif1 <- diff(y, difference=1) # differencing ordo 1
plot.ts(y.dif1, lty=1, xlab="Waktu", ylab="Data Y.Diff Ordo 1")
points(y.dif1)
# Pengidentifikasian 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(0,0,2),method="ML") # ARIMA(0,1,2)
arima(y.dif1, order=c(3,0,0),method="ML") # ARIMA(3,1,0)
arima(y.dif1, order=c(1,0,1),method="ML") # ARIMA(1,1,1)
9
# Diagnostik Pada Model Terbaik
# Model ARIMA(1,1,1) Menggunakan Data Awal Y
modelku <- arima(y, order=c(1,1,1),method="ML")
sisaan <- residuals(modelku)
qqnorm(sisaan)
qqline(sisaan)
tsdiag(modelku,gof=16,omit.initial=F) # p-value untuk uji Ljung-Box
# Peramalan Berdasarkan Model Terbaik
dugaan <- fitted(modelku)
cbind(y,dugaan)
plot.ts(y, xlab="Waktu", ylab="Data Y")
points(y)
par(col="red")
lines(dugaan)
par(col="black")
10
# Peramalan Berdasarkan Model Terbaik
ramalan <- predict(modelku, n.ahead=5)
ramalan
plot(modelku,n.ahead=5,type='b',xlab="Waktu",ylab="Data Y")
par(col="red")
lines(dugaan)
par(col="black")
11
12
13
14
15
16
> eacf(y.dif1)
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 x x x x
1 x o o o o o o o o o o x o o
2 x x o o o o o o o o o x o o
3 x x o o o o o o o o o x o o
4 x x o x o o o o o o o x o o
5 x o o o o o o o o o o x o o
6 x o o o o o o o o o o x o o
7 x o o o o o o o o o o o o o
17
> arima(y.dif1, order=c(0,0,2),method="ML") # ARIMA(0,1,2)
Call:
arima(x = y.dif1, order = c(0, 0, 2), method = "ML")
Coefficients:
ma1 ma2 intercept
1.2345 0.3810 0.3195
s.e. 0.0910 0.0936 0.2525
sigma^2 estimated as 0.9365: log likelihood = -138.18,
aic = 282.37
18
> arima(y.dif1, order=c(3,0,0),method="ML") # ARIMA(3,1,0)
Call:
arima(x = y.dif1, order = c(3, 0, 0), method = "ML")
Coefficients:
ar1 ar2 ar3 intercept
1.2249 -0.7571 0.2688 0.3249
s.e. 0.0987 0.1438 0.1016 0.3662
sigma^2 estimated as 0.9572: log likelihood = -139.08,
aic = 286.16
19
> arima(y.dif1, order=c(1,0,1),method="ML") # ARIMA(1,1,1)
Call:
arima(x = y.dif1, order = c(1, 0, 1), method = "ML")
Coefficients:
ar1 ma1 intercept
0.5423 0.7580 0.3183
s.e. 0.0894 0.0668 0.3585
sigma^2 estimated as 0.8906: log likelihood = -135.69,
aic = 277.37
20
> arima(y.dif1, order=c(1,0,1),method="ML") # ARIMA(1,1,1)
Call:
arima(x = y.dif1, order = c(1, 0, 1), method = "ML")
Coefficients:
ar1 ma1 intercept
0.5423 0.7580 0.3183
s.e. 0.0894 0.0668 0.3585
sigma^2 estimated as 0.8906: log likelihood = -135.69,
aic = 277.37
package arima di R, tetha bertanda positif, kebalikan dari Cryer. Berarti penduga bagi tetha adalah −0.7580
21
22
23
Standardized Residuals
Time
0 20 40 60 80 100
-20
2
0 5 10 15 20
-0.2
0.4
1.0
Lag
AC
F
ACF of Residuals
5 10 15
0.0
0.4
0.8
p values for Ljung-Box statistic
lag
p v
alu
e
> ramalan <- predict(modelku, n.ahead=5)
$pred (Ramalan)
Time Series:
Start = 101
End = 105
Frequency = 1
[1] 48.50978 48.41641 48.36469 48.33604 48.32017
$se (Galat Baku atau Standard Error)
Time Series:
Start = 101
End = 105
Frequency = 1
[1] 0.9472748 2.3843231 3.7353442 4.9552922 6.0477132
24
25
Waktu
Da
ta Y
0 20 40 60 80 100
20
30
40
50
60
a. Berdasarkan hasil Program R di atas, uraikan persamaan
modelnya secara lengkap untuk model terbaik yang diperoleh,
yaitu ARIMA(1, 1, 1).
b. Berdasarkan persamaan model pada poin (a) di atas,
tentukan ramalan 3 waktu ke depan, yaitu Y101, Y102, Y103.
c. Bandingkan hasil jawaban Anda pada poin (b) di atas dengan
hasil keluaran Program R.
26
a. Program R dapat melakukan proses pemodelan ARIMA
secara otomatis melalui pendekatan teknik machine learning.
b. Dapat langsung diperoleh model terbaik (best model)
berdasarkan nilai AIC, AICc, dan BIC.
c. Pada model terbaik yang diperoleh tersebut harus dilakukan
analisis diagnostik seperti pada pembahasan sebelumnya,
sebab analisis diagnostik tidak tercakup dalam syntax
auto.arima.
d. Karena sekedar output akhir, maka fungsi auto.arima hanya
berguna bagi mereka yang telah memamahi konsep
pemodelan data deret waktu.
27
# Pemodelan ARIMA(1,1,1)
library("forecast")
library("TTR")
library("TSA")
library("graphics")
# Membangkitkan y, ARIMA(1,1,1): mu = 0.15, phi = 0.55, tetha = -0.75
set.seed(1001)
e <- rnorm(150,0,1)
n <- length(e)
mu <- 0.15
phi <- 0.55
tetha <- -0.75
y <- c(1:n)
for (i in 3:n)
{ y[i] <- mu + (1+phi)*y[i-1] - phi*y[i-2] + e[i] - tetha*e[i-1]}
y <- y[-c(1:50)] # membuang 50 data pertama
# Pemodelan dengan auto.arima
auto.arima(y, trace=TRUE)
28
> auto.arima(y, trace=TRUE)
ARIMA(2,1,2) with drift : 283.7934
ARIMA(0,1,0) with drift : 395.8794
ARIMA(1,1,0) with drift : 313.0773
ARIMA(0,1,1) with drift : 305.4258
ARIMA(0,1,0) : 396.6849
ARIMA(1,1,2) with drift : 281.53
ARIMA(0,1,2) with drift : 283.458
ARIMA(1,1,1) with drift : 279.7959
ARIMA(2,1,1) with drift : 281.5255
ARIMA(2,1,0) with drift : 293.313
ARIMA(1,1,1) : 278.3909
ARIMA(0,1,1) : 305.493
ARIMA(1,1,0) : 311.2734
ARIMA(2,1,1) : 280.2021
ARIMA(1,1,2) : 280.1891
ARIMA(0,1,2) : 282.7556
ARIMA(2,1,0) : 292.3145
ARIMA(2,1,2) : 281.4349
Best model: ARIMA(1,1,1)
29
Series: y
ARIMA(1,1,1)
Coefficients:
ar1 ma1
0.5539 0.7559
s.e. 0.0885 0.0673
sigma^2 estimated as 0.9158: log likelihood = -136.07
AIC=278.14 AICc=278.39 BIC=285.92
30
31
1. Melalui Program R, bangkitkan data (n = 165) berupa model
ARIMA(1, 2, 1) dengan = 0.35, Φ = - 0.75 dan θ = 0.60 serta
et ~ Normal(0,1). Gunakan 150 data terakhir sebagai data Yt dan
selanjutnya lakukan proses berikut:
a. Identifikasilah kandidat model berdasarkan ACF, PACF, dan EACF.
b. Berdasarkan kandidat model tersebut, tentukan model terbaik
berdasarkan nilai AIC-nya.
c. Lakukan analisis diagnostik pada model terbaik tersebut. Apa
kesimpulan Anda?
d. Bandingkan penduga parameter yang diperoleh untuk model terbaik
pada poin (b) dan (c) tersebut dengan nilai parameter yang
sesungguhnya. Apa kesimpulan Anda?
e. Gunakan fungsi auto.arima untuk menentukan kandidat model terbaik.
Bandingkan hasilnya dengan poin (b) di atas.
f. Berdasarkan model terbaik tersebut, tentukan nilai ramalan untuk 5
waktu ke depan.32
2. Melalui Program R, bangkitkan data (n = 165) berupa model ARIMA(2, 2, 2)
dengan = 0.25 dan Φ1 = - 0.55, Φ2 = - 0.75, θ1 = 0.35, θ2 = - 0.60 serta
et ~ Normal(0,1). Gunakan 150 data terakhir sebagai data Yt dan selanjutnya
lakukan proses berikut:
a. Identifikasilah kandidat model berdasarkan ACF, PACF, dan EACF.
b. Berdasarkan kandidat model tersebut, tentukan model terbaik berdasarkan
nilai AIC-nya.
c. Lakukan analisis diagnostik pada model terbaik tersebut. Apa kesimpulan
Anda?
d. Bandingkan penduga parameter yang diperoleh untuk model terbaik pada
poin (b) dan (c) tersebut dengan nilai parameter yang sesungguhnya. Apa
kesimpulan Anda?
e. Gunakan fungsi auto.arima untuk menentukan kandidat model terbaik.
Bandingkan hasilnya dengan poin (b) di atas.
f. Berdasarkan model terbaik tersebut, tentukan nilai ramalan untuk 5 waktu
ke depan.
33
34
a. Data 10 bulan terakhir tidak digunakan dalam proses pemodelan,
namun nantinya digunakan untuk proses validasi.
b. Selanjutnya, identifikasilah kandidat model yang sesuai.
c. Berdasarkan kandidat model tersebut, tentukan model terbaik
berdasarkan nilai AIC-nya.
d. Lakukan analisis diagnostik pada model terbaik tersebut.
Apa kesimpulan Anda?
e. Berdasarkan model terbaik tersebut, tentukan nilai ramalan untuk 10
bulan ke depan.
f. Bandingkan nilai ramalan pada poin (e) dengan nilai aktual pada poin
(a) di atas. Apa kesimpulan Anda?
3. Penerapan pada DATA AKTUAL.
Melalui Program R, kerjakan : Exercise 5.20 (Montgomery, hlm. 291):
35
36
37
Montgomery, D.C., et.al. 2008. Forecasting Time Series Analysis
2nd. John Wiley.
Cryer, J.D. and Chan, K.S. 2008. Time Series Analysis with
Application in R. Springer.
Cowpertwait, P.S.P. and Metcalfe, A.V. 2009. Introductory Time
Series with R. Springer New York.
Wei, William, W.S. 1990. Time Series Analysis, Univariate and
Multivariate Methods. Adison-Wesley Publishing Company Inc,
Canada.
38
39
Bisa di-download di
kusmansadik.wordpress.com
40