Mengimput nilai yang hilang

Memanipulasi Data Deret Waktu di R

Harrison Brown

Graduate Researcher in Geography

Deret waktu teratur vs tidak teratur

Deret waktu teratur:

  • Tidak ada nilai hilang atau NA
  • Jarak antar interval seragam

Masalah dunia nyata:

  • Kegagalan sensor/peralatan
  • Kondisi cuaca
  • ...

Agregasi:

  • Mensampel ulang ke resolusi waktu lebih rendah
  • Mengurangi informasi
  • mis. jumlah bulanan dari nilai harian

Imputasi:

  • Mengisi nilai hilang
  • Metode berbeda untuk menentukannya
Memanipulasi Data Deret Waktu di R

Imputasi

Grafik sebagian dataset Mauna Loa. Versi ini memiliki titik data hilang sehingga ada 'lubang'/celah pada garis; ini mewakili nilai NA.

Grafik ini adalah tampilan diperbesar dari plot Mauna Loa sebelumnya. Celah pada garis lebih jelas.

Memanipulasi Data Deret Waktu di R

Imputasi dengan zoo

Fungsi na-dot dari zoo:

  • zoo::na.fill()

  • zoo::na.locf()

  • zoo::na.approx()

Memanipulasi Data Deret Waktu di R

Menentukan nilai hilang

observations
2017-01-01 NA
2017-01-02  2
2017-01-03  2
2017-01-04  2
2017-01-05  4
2017-01-06  2
2017-01-07 NA
2017-01-08  1
2017-01-09  2
2017-01-10  2
...
sum(is.na(observations))
[1] 23
Memanipulasi Data Deret Waktu di R

na.fill

observations
2017-01-01 NA
2017-01-02  2
2017-01-03  2
2017-01-04  2
2017-01-05  4
...
table(observations, useNA = 'ifany')
   1    2    3    4    5    6 <NA> 
  43   29   17   13    1    2   23

Grafik deret waktu fiksi dengan sumbu y = jumlah 'observations' per hari. Ada celah akibat nilai hilang (NA) pada dataset.

Memanipulasi Data Deret Waktu di R

na.fill

observations_fill <-
  na.fill(object = observations,
          fill = 0)

table(observations_fill)
 0  1  2  3  4  5  6 
23 43 29 17 13  1  2
autoplot(observations_fill)

Versi 'terisi' dari grafik 'Daily observations' — nilai NA diganti nol dengan metode imputasi Constant Fill.

Memanipulasi Data Deret Waktu di R

na.locf

autoplot(scores)
Warning message:
Removed 12 row(s) containing
missing values (geom_path).

Grafik deret waktu fiksi 'Monthly Test Scores'. Garis berakhir tiba-tiba, menandakan setelah titik tertentu ada nilai hilang (NA). Grafik menampilkan skor uji 2005–2008 dengan tren naik; setelah 2007, data hilang.

scores_locf <- na.locf(scores)
autoplot(scores_locf)

'Versi terisi' dari grafik 'Monthly Test Scores' menggunakan LOCF (Last Observation Carried Forward). Setelah 2007, nilai diganti dengan nilai terakhir yang bukan NA.

Memanipulasi Data Deret Waktu di R

Interpolasi linear

na.approx()

Slide 1 dari 'animasi' proses Interpolasi Linear. Gambar menunjukkan grafik konseptual dengan sumbu x-y dan titik pada garis. Ada 'celah' besar di tengah tempat nilai data NA.

Memanipulasi Data Deret Waktu di R

Interpolasi linear

na.approx()

Slide 2 dari 'animasi' Interpolasi Linear. Celah dijembatani garis putus-putus merah, menunjukkan penghubung dua nilai terdekat yang bukan NA di sisi kiri dan kanan.

Memanipulasi Data Deret Waktu di R

Interpolasi linear

na.approx()

Slide 3 dari 'animasi' Interpolasi Linear. Garis putus-putus merah diganti garis hitam solid, menandakan nilai hilang telah diisi dengan interpolasi linear.

Memanipulasi Data Deret Waktu di R

na.approx

maunaloa_approx <-
  na.approx(maunaloa_missing)

autoplot(maunaloa_approx) +
  labs(
    x = "Index",
    y = "CO2 Concentration",
    title = "Approximated Data Points"
  )

Plot deret waktu Mauna Loa, nilai NA diisi dengan interpolasi linear. Hampir tak terlihat di mana nilai hilang sebelumnya, menunjukkan akurasi metode ini.

Memanipulasi Data Deret Waktu di R

Ayo berlatih!

Memanipulasi Data Deret Waktu di R

Preparing Video For Download...