Mini Project Pemodelan Outlier Menggunakan Data Rivers

Rike Ratnari

2022-05-19


1 PENDAHULUAN

1.1 Latar Belakang

Outlier adalah pengamatan yang memiliki nilai jauh berbeda dari nilai lainnya atau dapat dikatakan bahwa data tersebut tidak mencerminkan data secara keseluruhan. Pada kenyataannya pengamatan yang merupakan outlier sering ada pada data yang akan dianalisis.Outlier dapat disebabkan oleh berbagai hal tak terduga yang muncul dan mempengaruhi nilai pengamatan sehingga berubah menjadi ekstrim seketika. Menurut Wei (2006) konsekuensi dari adanya hal tak terduga dapat menciptakan pengamatan melenceng yang tidak konsisten seperti deret waktu lainnya.Maka dari itu, penelitian ini bertujuan untuk membrikan gambaran dalam melakukan pemodelan outlier dengan RStudio

1.2 Statistika Deskriptif

Statistika deskriptif adalah metode-metode yang berkaitan dengan pengumpulan dan penyajian suatu data sehingga memberikan informasi yang berguna (Walpole, 1995). Statistik deskriptif berfungsi untuk mendeskripsikan atau memberi gambaran terhadap objek yang diteliti melalui data sampel atau populasi (Sugiyono,2007). Data yang disajikan dalam statistik deskriptif biasanya dalam bentuk ukuran pemusatan data (Kuswanto, 2012). Salah satu ukuran pemusatan data yang biasa digunakan adalah mean (Fauzy, 2009).

1.3 Tipe-Tipe Outlier

  1. Additive Outlier Additive outlier merupakan jenis outlier yang mempengaruhi pengamatan tunggal tanpa mempengaruhi deret lainnya dan biasanya terjadi sebagai akibat dari kesalahan yang dibuat dalam merekap data. Model dari additive outlier dapat ditulis sebagai berikut: \[ Z_{~t~}= X_{~t~}+ ω_{~i~}I^{(T)}_{~t~} \tag{1} \]

  2. Level Shift (LS) Level shift adalah perubahan yang mempengaruhi deret pada satu waktu tertentu dan bersifat permanen hingga akhir pengamatan. Model dari level shift dapat ditulis sebagai berikut: \[ Z_{~t~}= X_{~t~}+ \frac {ω_~i~}{1-B} I^{(T)}_{~t~} \tag{2} \]

  3. Transitory Change(TC) Transitory change adalah suatu kejadian di mana outlier menghasilkan efek terhadap pengamatan menurun secara eksponensial dengan parameter δ dan dampak awal ωi. Model dari transitory change dapat ditulis sebagai berikut: \[ Z_{~t~}= X_{~t~} + \frac {1}{1-δB} ω_{~i~}I^{(T)}_{~t~} \tag{3} \]

  4. Inovational Outlier Inovational outlier merupakan jenis outlier yang mempengaruhi pengamatan setelah terjadinya pencil sehingga mengganggu susunan deret waktu. Model dari innovational outlier dapat ditulis sebagai berikut: \[ Z_{~t~}= X_{~t~}+ \frac {θ(B)}{φ(B)} ω_{~i~}I^{(T)}_{~t~} \tag{4} \] ## Deteksi Outlier Menggunakan Prosedur Iteratif Berikut ini merupakan tahapan-tahapan dalam pendeteksian outlier menggunakan metode iteratif (Tsay, 1988):

  5. Diasumsikan bahwa tidak ada perubahan ragam (tidak terdapat outlier pada data) dan telah diketahui model untuk data deret waktu tersebut sehingga dapat diperoleh parameter duga dan sisaan berdasarkan model.

  6. Menghitung rasio ragam menggunakan nilai sisaan yang telah didapatkan pada tahapan sebelumnya sehingga didapatkan nilai minimum dan maksimum rasio ragam. Jika nilai minimum dan maksimum rasio ragam dilambangkan dengan \[ λ_{V,min} \] dan \[ λ_{V,max} \] maka dapat ditetapkan persamaan seperti berikut: \[ \begin{aligned} λ_{V,min} &=Min[r_{~d~}|h<d<n-h] \\ λ_{V,max} &=Max[r_{~d~}|h<d<n-h] \end{aligned} \tag{5} \] di mana h merupakan bilangan bulat positif yang telah ditentukan berdasarka angka minimum sisaan yang digunakan untuk menduga ragam pada awal hingga akhir data.

  7. Jika dimisalkan \[ λ_{V}=Max[λ_{V,max},λ^{-1}_{V,max}] \] maka tahapan selanjutnya ialah membandingkan λv dengan nilai titik kritis C yang telah ditetapkan.Nilai titik kritis C yang banyak digunakan ialah 2.5, 3.0 atau 3.5.Jika λV < C, maka dapat disimpulkan bahwa tidak ada perubahan ragam yang signifikan dan iterasi dihentikan. Disisi lain, jika λV ≥ C , maka perubahan ragam telah terdeteksi. Pengamatan yang tak terduga perubahannya ialah ketika λV signifikan, hal ini dapat dikatakan sebagai d0.

  8. Sesuaikan perubahan varians dengan membentuk proses yang dimodifikasi untuk Zt* sebagai berikut: \[ Z^{*}_{~t~} saat : t< d_{~0~} = Z_{~t~} \\Z^{*}_{~t~} saat : t> d_{~0~}= Z_{bar}+λ^{-1/2}_{V}(Z_{~t~}-Z_{bar}) \tag{6} \] di mana Zbar merupakan rata-rata contoh dari Zt, maka langkah selanjutnya ialah kembali ke tahapan 1 di mana\[Z^{*}_{~t~}\]yang digunakan sebagai pengamatan.

1.4 Data

Data yang digunkana dalam penelitian ini adalah data rivers (yang dianggap sebagai data deret waktu untuk keperluan latihan analisis)

2 SOURCE CODE

2.1 Library yang Dibutuhkan

library(TSA)
## 
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
## 
##     acf, arima
## The following object is masked from 'package:utils':
## 
##     tar
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ ggplot2 3.3.6     ✔ purrr   0.3.4
## ✔ tibble  3.1.7     ✔ dplyr   1.0.9
## ✔ tidyr   1.2.0     ✔ stringr 1.4.0
## ✔ readr   2.1.2     ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ readr::spec()   masks TSA::spec()
library(tidyr)

TSA digunakan untuk analisis data time series,untuk library tidyverse berfungsi untuk pengolahan data import dan export data, membuat visualisasi data, dan pemodelan data sedangkan untuk library tidyr digunakan untuk merapikan data seperti handling missing value yang berfungsi menangani data yang hilang atau tidak lengkap.

2.2 Membangkitkan Data

data.frame(rivers)
##     rivers
## 1      735
## 2      320
## 3      325
## 4      392
## 5      524
## 6      450
## 7     1459
## 8      135
## 9      465
## 10     600
## 11     330
## 12     336
## 13     280
## 14     315
## 15     870
## 16     906
## 17     202
## 18     329
## 19     290
## 20    1000
## 21     600
## 22     505
## 23    1450
## 24     840
## 25    1243
## 26     890
## 27     350
## 28     407
## 29     286
## 30     280
## 31     525
## 32     720
## 33     390
## 34     250
## 35     327
## 36     230
## 37     265
## 38     850
## 39     210
## 40     630
## 41     260
## 42     230
## 43     360
## 44     730
## 45     600
## 46     306
## 47     390
## 48     420
## 49     291
## 50     710
## 51     340
## 52     217
## 53     281
## 54     352
## 55     259
## 56     250
## 57     470
## 58     680
## 59     570
## 60     350
## 61     300
## 62     560
## 63     900
## 64     625
## 65     332
## 66    2348
## 67    1171
## 68    3710
## 69    2315
## 70    2533
## 71     780
## 72     280
## 73     410
## 74     460
## 75     260
## 76     255
## 77     431
## 78     350
## 79     760
## 80     618
## 81     338
## 82     981
## 83    1306
## 84     500
## 85     696
## 86     605
## 87     250
## 88     411
## 89    1054
## 90     735
## 91     233
## 92     435
## 93     490
## 94     310
## 95     460
## 96     383
## 97     375
## 98    1270
## 99     545
## 100    445
## 101   1885
## 102    380
## 103    300
## 104    380
## 105    377
## 106    425
## 107    276
## 108    210
## 109    800
## 110    420
## 111    350
## 112    360
## 113    538
## 114   1100
## 115   1205
## 116    314
## 117    237
## 118    610
## 119    360
## 120    540
## 121   1038
## 122    424
## 123    310
## 124    300
## 125    444
## 126    301
## 127    268
## 128    620
## 129    215
## 130    652
## 131    900
## 132    525
## 133    246
## 134    360
## 135    529
## 136    500
## 137    720
## 138    270
## 139    430
## 140    671
## 141   1770

2.3 Plot Data Rivers

plot(rivers,ylab='miles',xlab='Bulan', type='o')

## ACF dan PACF

acf(rivers)

pacf(rivers)

2.4 Memodelkan ARIMA

arima(rivers,order=c(1,0,1),method='ML',include.mean = T)
## 
## Call:
## arima(x = rivers, order = c(1, 0, 1), include.mean = T, method = "ML")
## 
## Coefficients:
##          ar1      ma1  intercept
##       0.6722  -0.3037   600.5013
## s.e.  0.1089   0.1300    78.1898
## 
## sigma^2 estimated as 195087:  log likelihood = -1058.97,  aic = 2123.93

2.5 Pendeteksian Outlier

riv.m1=arima(rivers,order=c(1,0,1),method='ML',include.mean = T)
detectAO(riv.m1)
##              [,1]      [,2]       [,3]
## ind     66.000000 68.000000 101.000000
## lambda2  3.960429  6.431511   4.213812
detectIO(riv.m1)
##              [,1]      [,2]       [,3]
## ind     66.000000 68.000000 101.000000
## lambda1  5.101067  7.537988   3.692812

2.6 Pendugaan Parameter

riv.m2=arimax(rivers,order=c(1,0,1),xreg=data.frame(AO1=1*(AO=seq(rivers)==66
),
AO2=1*(AO=seq(rivers)==68)),io=c(101),method='ML')
riv.m2
## 
## Call:
## arimax(x = rivers, order = c(1, 0, 1), xreg = data.frame(AO1 = 1 * (AO = seq(rivers) == 
##     66), AO2 = 1 * (AO = seq(rivers) == 68)), method = "ML", io = c(101))
## 
## Coefficients:
##          ar1      ma1  intercept       AO1        AO2     IO.101
##       0.5006  -0.1386   554.7690  1901.098  2536.1000  1690.1187
## s.e.  0.1376   0.1564    47.5944   318.759   326.7884   317.8851
## 
## sigma^2 estimated as 107512:  log likelihood = -1016.92,  aic = 2045.84

2.7 Uji Sisaan

tsdiag(riv.m2,gof=15,omit.initial=F)

## Model Outlier

plot(rivers,ylab='miles',xlab='Bulan', type='o')
points(fitted(riv.m2))

Data dibangkitkan dengan cara simulasi data rivers dengan lebar 4,875 dan tinggi 2,5 serta ukuran poin adalah 8 melalui fungsi win.graph() dan dilanjutkan dengan membuat kerangka data, koleksi dari variabel-variabel yang mana memiliki karakteristik seperti matriks dengan fungsi data.frame(). Selanjutnya dilakukan pembentukan grafik data dengan fungsi plot(). 

3 HASIL DAN PEMBAHASAN

3.1 Model Outlier

\[ \begin{aligned} Z_{~t~}&= Model AO + Model IO \\ Z_{~t~}&= (Z~t~= X~t~+ ω~i~I^{(T)}_{~t~}) + (Z~t~= X~t~+ \frac {θ(B)}{φ(B)} ω~i~I^{(T)}_{~t~}) \\ Z_{~t~}&= 554,769 + (-0,2768_{~a_t~} + 1901,0983I^{(66)}_{~t~} + 2536,10I^{(68)}_{~t~} - 467,9394I^{(101)}_{~t~}) \end{aligned} \] # DAFTAR PUSTAKA

Materi praktikum metode peramalan