Visualisasi Data Deret Waktu
Data Deret Waktu
Data deret waktu merupakan data yang diamati berdasarkan urutan waktu dengan rentang yang sama (jam, hari, minggu, bulan, tahun, dll). Beberapa contoh data deret waktu antara lain nilai tukar rupiah harian, jumlah pasien covid-19 di Indonesia, curah hujan, dll.
Data deret waktu dibedakan menjadi dua, yaitu data stasioner dan tidak stasioner. Data dikatakan stasioner jika memiliki nilai tengah dan ragam yang konstan dari waktu ke waktu. Adapun pola data deret waktu secara garis besar dibedakan menjadi horizontal, trend, siklis, dan musiman. Dalam analisis data deret waktu, identifikasi pola data merupakan hal yang sangat penting untuk menentukan jenis analisis yang akan digunakan.
Berikut akan dibahas mengenai beberapa teknik eksplorasi data deret waktu menggunakan library graphics di R. Data pertama yang digunakan adalah data tentang Inflasi Indonesia tahun 2016-2021. Sumber data berasal dari (https://www.bi.go.id/id/statistik)
Contoh data ke-1
# set directory and import data
library(readxl)## Warning: package 'readxl' was built under R version 4.0.4
setwd("D:/Bahan Ajar")
mdata<- read_excel("Data Inflasi.xlsx", sheet = 1)
# Statistik deskriptif
str(mdata)## tibble [6 x 3] (S3: tbl_df/tbl/data.frame)
## $ Tahun : num [1:6] 2016 2017 2018 2019 2020 ...
## $ Inflasi: num [1:6] 1.4 1.5 0.5 0.9 1.1 1.2
## $ Miskin : num [1:6] 20 19.2 18.8 17.5 16.9 16.4
head(mdata)## # A tibble: 6 x 3
## Tahun Inflasi Miskin
## <dbl> <dbl> <dbl>
## 1 2016 1.4 20
## 2 2017 1.5 19.2
## 3 2018 0.5 18.8
## 4 2019 0.9 17.5
## 5 2020 1.1 16.9
## 6 2021 1.2 16.4
summary(mdata)## Tahun Inflasi Miskin
## Min. :2016 Min. :0.50 Min. :16.40
## 1st Qu.:2017 1st Qu.:0.95 1st Qu.:17.05
## Median :2018 Median :1.15 Median :18.15
## Mean :2018 Mean :1.10 Mean :18.13
## 3rd Qu.:2020 3rd Qu.:1.35 3rd Qu.:19.10
## Max. :2021 Max. :1.50 Max. :20.00
dim(mdata)## [1] 6 3
# Menghitung simpangan baku data
apply(mdata[,2:3], 2, sd)## Inflasi Miskin
## 0.363318 1.413742
Terlihat pada rentang waktu 2016-2022 terdapat 6 amatan yang terdiri dari dua peubah yaitu nilai Inflasi (dalam %) dan jumlah kemiskinan (dalam %). Rata-rata inflasi dalam periode tersebut yaitu sebesar 1.10% dengan rata-rata kemiskinan yang terjadi yaitu 18.3%. Selanjutnya akan dilakukan eksplorasi lebih lanjut.
# Mengubah data menjadi data deret waktu
library(graphics)
dts<- ts(mdata[,2:3], start = 2016, end = 2021)
head(dts)## Inflasi Miskin
## [1,] 1.4 20.0
## [2,] 1.5 19.2
## [3,] 0.5 18.8
## [4,] 0.9 17.5
## [5,] 1.1 16.9
## [6,] 1.2 16.4
# Multiple Graph (membagi jendela menjadi 1 baris dua kolom)
par(mfrow = c(1,2))
ts.plot(dts[,1], ylab = "Nilai Inflasi", xlab = "Tahun", col = "darkred", lwd = 1)
title(main = 'Nilai Inflasi Tahun 2016-2021',
sub = "Sumber: https://www.bi.go.id/id/statistik ", cex.main = 0.8, cex.sub = 0.7)
points(dts[,1], pch = 20, col = 'darkred')
ts.plot(dts[,2], ylab = "Penduduk Miskin", xlab = "Tahun", col = "black", lwd = 1)
points(dts[,2], pch = 20, col = 'black')
title(main = 'Persentase Penduduk Miskin Tahun 2016-2021',
sub = "Sumber: https://www.bi.go.id/id/statistik", cex.main = 0.8, cex.sub = 0.7)Plot diatas terlihat bahwa data tidak stasioner. Nilai Inflasi setiap tahunnya berubah secara fluktuatif. Adapun sejak tahun 2018 hingga 2021 terjadi peningkatan nilai Inflasi setiap tahunnya. Adapun persentase penduduk miskin menurun setiap tahunnya.
Contoh data ke-2
mdata2<- read_excel("Data Inflasi.xlsx", sheet = 2)
# Statistik deskriptif
str(mdata2)## tibble [72 x 2] (S3: tbl_df/tbl/data.frame)
## $ Periode: chr [1:72] "Januari 2016" "Februari 2016" "Maret 2016" "April 2016" ...
## $ Inflasi: num [1:72] 4.14 4.42 4.45 3.6 3.33 3.45 3.21 2.79 3.07 3.31 ...
head(mdata2)## # A tibble: 6 x 2
## Periode Inflasi
## <chr> <dbl>
## 1 Januari 2016 4.14
## 2 Februari 2016 4.42
## 3 Maret 2016 4.45
## 4 April 2016 3.6
## 5 Mei 2016 3.33
## 6 Juni 2016 3.45
# Mengubah data menjadi data deret waktu
library(graphics)
dts2<- ts(mdata2[,2], start = 1, end = 72)
head(dts)## Inflasi Miskin
## [1,] 1.4 20.0
## [2,] 1.5 19.2
## [3,] 0.5 18.8
## [4,] 0.9 17.5
## [5,] 1.1 16.9
## [6,] 1.2 16.4
# Multiple Graph (membagi jendela menjadi 1 baris dua kolom)
ts.plot(dts2[,1], ylab = "Nilai Inflasi", xlab = "Bulan", col = "blue", lwd = 1)
title(main = 'Nilai Inflasi Januari 2016 - Desember 2021',
sub = "Sumber: https://www.bi.go.id/id/statistik ", cex.main = 0.8, cex.sub = 0.7)
points(dts2[,1], pch = 20, col = 'blue')Teknik Eksplorasi Data Deret Waktu
Metode Pemulusan Data Deret Waktu Metode pemulusan (smoothing) digunakan untuk mengurangi ketidak beraturan data dengan cara membuat keseimbangan rata-rata dari data pada masa lampau. Beberapa metode pemulusan pada data deret waktu antara lain :
Untuk data stasioner
Rata-rata bergerak tunggal (single moving avreage)
Pemulusan eksponensial tunggal (single exponential smoothing)
Untuk data berpola trend
Rata-rata bergerak ganda (double moving average)
Pemulusan eksponensial ganda (double exponential smoothing)
Untuk data musiman
- Pemulusan metode Winter