Penerapan Model ARIMA (Bagian I) Dr. Kusman Sadik, M.Si Departemen Statistika IPB, 2017 1
Ada tiga tahapan iteratif dalam pemodelan data deret waktu yang berbasis model ARIMA, yaitu: 1. Penentuan model tentatif (spesifikasi model) berdasarkan data contoh untuk mengidentifikasi nilai p, d, dan q. 2. Pendugaan parameter model ARIMA(p, d, q) yang diidentifikasi, yaitu penduga nilai,, dan σ 2 e. 3. Analisis diagnostik untuk melihat kelayakan model. 2
Prosedur iterasi ini sering disebut Metode Box-Jenkins. Untuk model ARIMA(p, d, q), spesifikasi dilakukan untuk menentukan nilai p, d, dan q. Alat yang digunakan pada tahap identifikasi ini adalah fungsi autokorelasi. Fungsi autokorelasi ini diduga dari data contoh atau disebut fungsi autokorelasi contoh (sample of autocorrelation function atau SACF atau ACF saja). Disamping itu ada pula fungsi autokorelasi parsial (sample of partial autocorrelation function atau SPACF atau PACF saja) 3
a. ACF 2,... 1,, ) ( ) )( ( 1 2 1 k Y Y Y Y Y Y r n t t k n t k t t k n Y Y n t t 1 rk merupakan penduga bagi k 4
a. PACF PACF : kk = Corr(Yt, Yt-k Yt-1, Yt-2,, Yt-k+1) Berdasarkan persamaan Yule-Walker: j = k1j-1 + k2j-2 +... + kkj-k j = 1, 2,..., k; Catatan: j = -j dan 0 = 1 k ACF; kk PACF ˆ kk penduga bagi kk 5
Contoh: Misal diketahui data : 4, 2, 5, 1. Tentukan ACF (r1, r2) dan PACF (φ 11, φ 22 ) Melalui persamaan 2,... 1,, ) ( ) )( ( 1 2 1 k Y Y Y Y Y Y r n t t k n t k t t k Dapat diperoleh penduga ACF : r1 = -0.7 dan r2 = 0.4 6
Berdasarkan persamaan Yule-Walker dapat diperoleh penduga PACF kk: j = k1j-1 + k2j-2 +... + kkj-k Untuk k =1 j = 1 1 = 110 1 = 11(1) r1 = φ 11 = -0.7 Untuk k = 2 j = 1, 2 1 = 210 + 221 1 = 21 + 221 2 = 211 + 220 2 = 211 + 22 7
1 = 210 + 221 1 = 21 + 221 2 = 211 + 220 2 = 211 + 22 (1) 2 = 211 + 22(1) 2... Pers(1) 2 = 211 + 22.. Pers(2) Berdasarkan Pers(1) dan Pers(2) diperoleh: (1) 2-2 = 22(1) 2-22 22 = {(1) 2-2}/{(1) 2-1} φ 22 = {(r1) 2 - r2}/{(r1) 2-1} = 0.09/(-0.51) = -0.176 8
Implementasi dalam Program R > data <- c(4, 2, 5, 1) > acf(data, lag.max = 3, plot = FALSE) Autocorrelations of series data, by lag 0 1 2 3 1.0-0.7 0.4-0.2 > pacf(data, lag.max = 3, plot = FALSE) Partial autocorrelations of series data, by lag 1 2 3-0.700-0.176 0.012 9
Pengidentifikasian Model Model MA: Misal MA(1) : Y t = e t - e t-1 ACF : k 2 1 0 ; ; k k 1 1 1.0 1.0 0.8 0.8 k 0.6 0.4 r k 0.6 0.4 0.2 0.0 1 2 3 4 5 ACF k 0.2 0.0 1 2 3 4 5 6 Sample of ACF k 10
Karena rk berasal dari data contoh maka diperlukan galat baku bagi rk yaitu Srk. Sebagai nilai pendekatan : Srk = 1 / n, dimana n adalah banyaknya data. Sehingga hipotesis H0 : k = 0 ditolak jika rk > 2Srk atau rk > 2 / n. Misalnya, jika r1 > 2 / n dan rk < 2 / n untuk k = 2, 3,, maka model tentatifnya adalah MA(1). 11
Model AR : Misalkan AR(1) : Y t = Y t-1 + e t ACF : k = k ; k = 1, 2, Untuk model AR, ACF merupakan fungsi eksponensial sehingga ACF tidak dapat digunakan untuk menentukan nilai p dalam AR(p). PACF : j = k1 j-1 + k2 j-2 +... + kk j-k (Yule-Walker) untuk k = 1 1 = 11 untuk k = 2 1 = 21 + 22 1... (1) 2 = 21 1 + 22... (2) 12
Berdasarkan persamaan (1) dan (2) 22 = 0. Demikian juga 33 = 44 =... = 0. Sehingga PACF AR(1): kk 0 1 ; ; k k 1 1 Dengan demikian PACF dapat digunakan sebagai penentu nilai p dalam model AR(p). kk 1.0 0.8 0.6 0.4 ˆ kk 1.0 0.8 0.6 0.4 0.2 0.2 0.0 1 2 3 4 5 PACF 0.0 1 2 3 4 5 6 Sample of PACF Hipotesis H 0 : kk = 0 ditolak jika ˆ 2 n. kk / 13
Pengidentifikasian nilai p dan q 1.0 0.8 0.6 0.4 0.2 tails off 0.0 1 2 3 4 5 6 7 8 9 Sample of ACF 1.0 0.8 cuts off after lag q 0.6 0.4 0.2 0.0 1 2 3 4 5 6 7 8 9 Sample of ACF 14
15
Contoh (1) 16
Contoh (2) 17
Contoh (3) d = 1 d = 1 18
Pengidentifikasian ARMA(p, q) Melalui EACF Nilai ACF dan PACF dapat digunakan untuk menentukan nilai q pada model MA(q) dan nilai p pada model AR(p). Namun tidak bisa digunakan untuk menentukan nilai p dan q pada model campuran ARMA(p, q). Karena itu dikembangkan metode extended autocorrelation function (EACF) untuk pengidentifikasian model campuran ARMA(p, q). Pada Tabel EACF, secara teoritis model ARMA(p, q) mempunyai pola segitiga-nol (triangle of zeroes), dimana nilai pada pojok kiri atas bersesuaian dengan ordo ARMA. 19
Pengidentifikasian ARMA(p, q) Melalui EACF 20
Pendugaan Parameter Model Apabila nilai p, d, dan q sudah dapat diidentifikasi, maka selanjutnya dilakukan pendugaan terhadap parameter model, yaitu 1, 2,..., p untuk model AR(p) dan 1, 2,..., q untuk model MA(q) berdasarkan data terobservasi Y 1, Y 2,..., Y n. Metode pendugaan parameter : Metode momen, Metode kuadrat terkecil (least-square), Metode kemungkinan maksimum (maximum likelihood). 21
1. Metode Momen Metode ini didasarkan pada persamaan momen contoh dan momen teoritis, kemudian memecahkan persamaan-persamaan tersebut untuk mendapatkan penduga bagi parameter model. Misalnya, menduga rataan populasi (teoritis) dengan rataan contoh Y. Model AR a. AR(1) : Y t = Y t-1 + e t k = k ; k = 1, 2, 1 = ˆ ˆ1 r 1 = ˆ Jadi pada AR(1) penduga bagi parameter model,, adalah r 1 yang dapat dihitung dari data. 22
b. AR(1) : Y t = + Y t-1 + e t Bagaimana menduga? Perhatikan model : (Y t - Y)= (Y t-1 - Y) + e t (Y t - Y)= (Y t-1 - Y) + e t Y t = (1 - )Y + Y t-1 + e t Y t = + Y t-1 + e t Sehingga : = (1 - )Y 23
c. AR(2) : Y t = 1 Y t-1 + 2 Y t-2 + e t Berdasarkan persamaan Yule-Walker : k = 1 k-1 + 2 k-2 +... + p k-p maka diperoleh 1 = 1 + 2 1 dan 2 = 1 1 + 2 dengan metode momen diperoleh: r 1 = ˆ 1 + ˆ 2 r 1 dan r 2 = r 1 ˆ 1 + ˆ 2 penyelesaian terhadap dua persamaan ini diperoleh: 2 ˆ r1 (1 r2 ) 1 dan ˆ r2 r1 2 2 2 1 r1 1 r1 24
Model MA MA(1) : Y t = e t - e t-1 1 ˆ 1 r 2 1 ˆ2 1 sehingga diperoleh : ˆ 1 1 2r 1 4r 2 1 Sebagai catatan untuk persamaan ini, apabila r 1 > 0.5 maka metode momen gagal untuk menduga parameter. Untuk MA(2), MA(3), dst, metode momen menjadi sangat kompleks, sehingga harus menggunakan metode pendugaan lainnya. 25
Model ARMA ARMA(1, 1) : Y t = Y t-1 - e t-1 + e t k ( 1)( ) k 1 2 1 2 2 sehingga penduga bagi adalah : 1 ˆ r r 2 1 Untuk menduga dapat digunakan persamaan pertama dengan cara mengganti 1 dengan r 1 dan dengan ˆ, yaitu r (1 ˆ ˆ)( ˆ ˆ) 1 2 ˆ ˆ 1 ˆ2 26
Contoh Kasus (Latihan): Misalnya diketahui model AR(2) : Yt = + 1Yt-1 + 2Yt-2 + et. Berdasarkan data diketahui bahwa r1 = 0.75, r2 = 0.61, dan Y = 4.5. Tentukan ˆ, ˆ 1, dan ˆ 2 dengan metode momen. 27
2. Metode Kuadrat Terkecil Metode ini dilakukan dengan cara meminimumkan komponen pada galat, yaitu n t 1 e 2 t. AR(1) : Y t = Y t-1 + e t e t = Y t - Y t-1 n S() = t 1 e t n 2 = ( Y t Y t t 1 ) 2 1 Penduga bagi parameter model,, dapat diperoleh dengan cara meminimumkan S(). 28
MA(1) : Y t = e t - e t-1 e t = Y t + e t-1 e t = Y t + ( Y t-1 + e t-2 ) e t = Y t + Y t-1 + 2 Y t-2 + 3 Y t-3 +. n S() = t 1 2 e t Meminimumkan S() tidak dapat dilakukan secara analitik / kalkulus karena bersifat non-linear, sehingga harus diselesaikan secara numerik / iteratif, salah satunya melalui algoritma Gauss-Newton atau Newton-Raphson. 29
3. Metode Kemungkinan Maksimum Metode ini dilakukan dengan cara memaksimumkan fungsi kemungkinan (likelihood), berdasarkan fungsi sebaran galat (e t ). AR(1) : Y t = Y t-1 + e t, misal e t bsi ~ N(0, e 2 ) 1 f(e 1, e 2,., e n ) = (2 ) 1) n 2 ( n / 2 2 e.exp( ) 2 et 2 L(, 2 1 e ) = (2 ) 1) n 2 ( n / 2 2 e.exp( ( ) ) 2 Yt Yt 2 e t 1 e t1 Penduga dan e 2 dapat diperoleh dengan cara memaksimumkan fungsi kemungkinan L(, e 2 ). 30
MA(1) : Y t = e t - e t-1 Fungsi kemungkinannya, L(, 2 e ), bersifat non-linear sehingga pemaksimumannya harus dilakukan secara numerik / iteratif. Catatan : Program R menggunakan metode iterasi Newton- Raphson untuk menduga parameter AR(p), MA(q), dan ARIMA(p, d, q). 31
# 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) 32
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) 33
# Plot dan Nilai Dugaan Berdasarkan Model Terbaik model <- arima(y.dif1, order=c(1,0,1),method="ml") # ARIMA(1,1,1) dugaan <- fitted(model) cbind(y.dif1,dugaan) plot.ts(y.dif1, xlab="waktu", ylab="data Diff.Y Ordo 1") points(y.dif1) par(col="red") lines(dugaan) par(col="black") 34
35
36
37
38
39
> 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 40
> 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 41
> 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 42
> 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 43
> cbind(y.dif1,dugaan) Time Series: Start = 1 End = 99 Frequency = 1 y.dif1 dugaan 1-0.301500868 0.03487535 2-2.989745815-0.59954250 3-1.798462592-2.91505510.. 97 2.664318123 2.84607363 98 0.354648756 1.45281261 99-0.463277448-0.49441754 44
Garis Merah : Plot Nilai Dugaan Berdasarkan Model Terbaik 45
> 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 Bandingkan dengan data y yang dibangkitkan: ARIMA(1,1,1) dengan parameter μ = 0.15, ϕ = 0.55, θ = 0.75 sigma^2 estimated as 0.8906 adalah nilai dugaan bagi σ e 2 Model terbaik tersebut selanjutnya bisa digunakan untuk peramalan 46
1. Melalui Program R, bangkitkan data y t, (n = 225), berupa model ARIMA(1, 2, 0) dengan = 0.5, Φ = 0.7 serta e t ~ Normal(0,1). Gunakan 200 data terakhir dan lakukan proses berikut: a. Identifikasilah 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? 47
2. Melalui Program R, bangkitkan data y t, (n = 225), berupa model ARIMA(1, 1, 2) dengan = 1.0, Φ = 0.7, θ 1 = - 0.8, dan θ 2 = 0.6 serta e t ~ Normal(0,1). Gunakan 200 data terakhir dan lakukan proses berikut: a. Identifikasilah 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? 48
3. Melalui Program R, kerjakan : Exercise 5.11 (Montgomery, hlm. 290): 49
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. 50
Bisa di-download di kusmansadik.wordpress.com 51
52 52