penerapan model arima ii...2020/03/07  · nilai p dan q dari model arima( p , d, q ) uji...

Post on 01-Nov-2020

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Dr. Kusman Sadik, M.Si

Sekolah Pascasarjana Departemen Statistika IPB

Semester Genap 2019/2020

Analisis Deret Waktu (STK651)

IPB University─ Bogor Indonesia ─ Inspiring Innovation with Integrity

Penerapan Model ARIMA – II(Uji Diagnostik, Peramalan, dan AUTO.ARIMA)

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

Analisis diagnostik dilakukan terhadap sisaan, yang mana

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("tseries")

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]}

# Membuang 50 Data Pertama

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

plot.ts(y, lty=1, xlab="Waktu", ylab="Data Asal (y)")

points(y)

8

# Cek Kestasioneran

acf(y, lag.max=20)

adf.test(y, alternative = c("stationary"),

k = trunc((length(y)-1)^(1/3))) #Augmented Dickey-Fuller

# Differencing Ordo 1

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

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

points(y.dif1)

# Cek Kestasioneran

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

adf.test(y.dif1, alternative = c("stationary"),

k = trunc((length(y)-1)^(1/3))) #Augmented Dickey-Fuller

# Pengidentifikasian Model

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

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

eacf(y.dif1)

9

# 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)

# 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)

# Uji Ljung-Box

tsdiag(modelku,gof=16,omit.initial=F)

10

# 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")

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

Augmented Dickey-Fuller Test

data: y

Dickey-Fuller = -2.3358,

Lag order = 4, p-value = 0.4375

alternative hypothesis: stationary

15

16

17

Augmented Dickey-Fuller Test

data: y.dif1

Dickey-Fuller = -3.4633,

Lag order = 4, p-value = 0.049

alternative hypothesis: stationary

18

19

> 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

20

> 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

21

> 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

22

> 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

23

> 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

24

25

26

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

27

28

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.

29

30

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.

31

d. Syntax auto.arima hanya berfungsi sebagai alat bantu

memperoleh output akhir. Padahal bagi statistisi yang

lebih diperlukan adalah proses dan konsep

pemodelannya, bukan sekedar output akhir.

e. Karenanya syntax auto.arima hanya berguna bagi

mereka yang telah memahami proses dan konsep

pemodelan data deret waktu.

32

# Pemodelan Menggunakan auto.arima

library("tseries")

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]}

# Membuang 50 Data Pertama

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

# Pemodelan dengan auto.arima

auto.arima(y, trace=TRUE)

33

> 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)

34

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

35

36

1. Melalui Program R, bangkitkan data (n = 175) berupa model

ARIMA(1, 2, 1) dengan = 1.25, Φ = - 0.80 dan θ = 0.65 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.37

2. Melalui Program R, bangkitkan data (n = 175) berupa model ARIMA(2, 1, 2)

dengan = 1.35 dan Φ1 = - 0.65, Φ2 = - 0.75, θ1 = 0.40, θ2 = - 0.65

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.

38

39

a. Data 10 bulan terakhir tidak digunakan dalam proses pemodelan, namun

nantinya digunakan untuk proses validasi.

b. Identifikasilah kandidat model yang sesuai. Berdasarkan kandidat model

tersebut, tentukan model terbaik berdasarkan nilai AIC-nya.

c. Gunakan auto.arima, kemudian bandingkan hasilnya dengan model

terbaik pada poin (b) di atas berdasarkan nilai AIC-nya. Apa kesimpulan

Anda?

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):

40

41

42

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.

43

44

Bisa di-download di

kusmansadik.wordpress.com

45

top related