Prodi : Teknik Informatika
Lembaga : UIN Maulana Malik Ibrahim Malang
Pengisian data hilang pada data runtun waktu (time series) dapat dilakukan dengan berbagai cara sesuai dengan situasi yang dihadapi. Pengisian dapat menggunakan nilai rata-rata jika data memiliki pola white noise, observasi terakhir atau observasi dimasa mendatang, dan interpolasi linier.
Data yang digunakan pada contoh kasus kali ini adalah data airquality. Dataset tersebut merupakan data kualitas udara bulan Mei sampai September 1973 yang ada di New York. Berikut adalah ringkasan data airquality tersebut:
summary(airquality)
## Ozone Solar.R Wind
## Min. : 1.0 Min. : 7 Min. : 1.70
## 1st Qu.: 18.0 1st Qu.:116 1st Qu.: 7.40
## Median : 31.5 Median :205 Median : 9.70
## Mean : 42.1 Mean :186 Mean : 9.96
## 3rd Qu.: 63.2 3rd Qu.:259 3rd Qu.:11.50
## Max. :168.0 Max. :334 Max. :20.70
## NA's :37 NA's :7
## Temp Month Day
## Min. :56.0 Min. :5.00 Min. : 1.0
## 1st Qu.:72.0 1st Qu.:6.00 1st Qu.: 8.0
## Median :79.0 Median :7.00 Median :16.0
## Mean :77.9 Mean :6.99 Mean :15.8
## 3rd Qu.:85.0 3rd Qu.:8.00 3rd Qu.:23.0
## Max. :97.0 Max. :9.00 Max. :31.0
##
str(airquality)
## 'data.frame': 153 obs. of 6 variables:
## $ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...
## $ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...
## $ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
## $ Temp : int 67 72 74 62 56 66 65 59 61 69 ...
## $ Month : int 5 5 5 5 5 5 5 5 5 5 ...
## $ Day : int 1 2 3 4 5 6 7 8 9 10 ...
head(airquality)
## Ozone Solar.R Wind Temp Month Day
## 1 41 190 7.4 67 5 1
## 2 36 118 8.0 72 5 2
## 3 12 149 12.6 74 5 3
## 4 18 313 11.5 62 5 4
## 5 NA NA 14.3 56 5 5
## 6 28 NA 14.9 66 5 6
Pada contoh kasus kali ini kita akan mencoba melakukan pengisian data hilang pada data Solar.R pada dataset airquality. Langkah pertama yang perlu dilakukan adalah membuat objek data runtun waktu pada data tersebut.
Solar <- ts(airquality[,"Solar.R"])
Visualisasi data tersebut disajikan pada Gambar 8.5.
Berdasarkan visualisasi tersebut terdapat garis yang terputus yang menunjukkan data yang hilang. Agar garis tersebut dapat tersambung, kita perlu melakukan pengisian nilai yang hilang pada data tersebut. Berikut adalah sintaks yang digunakan untuk melakukan pengisian nilai hilang tersebut:
library(xts)
## Warning: package 'xts' was built under R version 3.5.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 3.5.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
# metode nilai rata-rata
Solar_mean <- na.fill(Solar, fill=mean(Solar, na.rm=TRUE))
# metode last observation carried forward
Solar_locf <- na.locf(Solar)
# metode next observation caried backward
Solar_nocb <- na.locf(Solar, fromLast = TRUE)
# metode interpolasi linier
Solar_linterp <- na.approx(Solar)
Berikut adalah visualisasi menggunakan metode nilai rata-rata:
Secara berturut-turut berikut adalah visualisasi dari metode locf, nocb, dan interpolasi linier:
Pemilihan metode interpolasi mana yang sesuai akan berbeda pada setiap situasi dan jenis data yang akan dilakukan interpolasi. Interpolasi data runtun waktu pada bidang lingkungan umumnya menggunakan metode interpolasi nilai rata-rata dan linier dan tidak menutup kemungkinan interpolasi dengan metode lain yang telah dijelaskan pada buku ini dapat pula digunakan.
Pada situasi dimana data membentuk pola white noises (pola acak disekitar nilai rata-rata dan memiliki varians yang konstan) seperti yang ditunjukkan variabel Solar.R, interpolaasi dengan nilai rata-rata cukup sesuai untuk digunakan untuk mengisi nilai hilang (missing value) pada data runtun waktu tersebut.
REFERENSI:
https://bookdown.org/moh_rosidi2610/Metode_Numerik/interpolation.html#studi-kasus-1