Moving Median

Model Time Series memiliki banyak potensi. beberapa diantaranya adalah inferensia, dimana kita ingin menjelaskan bagaimana perkembangan dari suatu proses stokastik, forecasting, dimana kita ingin memprediksi keadaan di masa mendatang, dan klasifikasi, dimana kita ingin mengklasifikasikan pola dari sebuah deret waktu.

Metode pemulusan (smoothing) merupakan metode yang digunakan untuk menghilangkan atau mengurangi keteracakan (fluktuasi) pada data time series. Dengan kata lain, metode smoothing digunakan untuk mengurangi ketidakteraturan musiman dari data yang lalu, dengan membuat rata-rata tertimbang dari sederetan data masa lalu. Ketepatan peramalan dengan metode ini akan terdapat pada peramalan jangka pendek, sedangkan untuk peramalan jangka panjang kurang akurat. Salah satu cara untuk memuluskan data time series adalah menggunakan metode moving median. Berbeda dengan moving average, pada metode moving median nilai tengah atau median akan bergerak per orde pengamatan. Dimana jika jumlah orde (n), maka data observasi akan berkurang sebanyak n-1. Misalkan n = 3, banyaknya data pengamatan 12. Jika menggunakan metode moving median, jumlah data setelah dilakukan smoothing menjadi 10.

Program R

Data yang digunakan adalah Monthly Car Sales in Quebec pada tahun 1960-1968 (https://data.world/perceptron/monthly-car-sales-quebec-1960). Data ini akan dilakukan pemulusan menggunakan metode moving median dengan parameter orde = 3 dan orde = 5.

Input Data

df <- read.csv("https://query.data.world/s/7tulvvesy72jkvcunhzdvzjuwbhlvb", header=TRUE, stringsAsFactors=FALSE);
df <- df$Monthly.car.sales.in.Quebec.1960.1968

Convert to time series

df <- ts(df, start = c(1960,1), end = c(1968,12), frequency = 12)

Plot Raw Time Series

plot(df, ylab = "Penjualan Mobil", xlab = "")

Moving Median

library(zoo)
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
df3 = rollmedian(df, k = 3)
df5 = rollmedian(df, k = 5)

Plot Raw, Orde = 3, dan Orde = 5

plot(df,main='Moving Median',ylab='Penjualan Mobil')
lines(df3,col='blue')
lines(df5,col='red')
legend(1960,24000,col=c('black','blue', 'red'),legend=c('Raw', 'Orde = 3', 'Orde = 5'),lty=1,cex=0.8)