Double Moving Average merupakan metode peramalan jangka pendek yang dapat mengatasi tren. Metode ini merupakan pengembangan dari metode Simple Moving Average.
Cara kerja metode ini yaitu dengan mencari nilai rata-rata dari rata-rata bergerak pertama. Pada metode ini orde yang digunakan harus sama, misal 3x3, maksudnya dari data awal dilakukan Moving Average dengan orde 3, kemudian hasil dari MA(3) dilakukan Moving Average dengan orde 3 juga. sintaks DMA di R
#Membuat Fungsi DMA
DMA <- function(data, orde) {
#Mendefinisikan vektor MA Pertama
s1=c()
#Menghitung MA pertama
for (i in orde:length(data)) {
s1[i] = mean(data[(i-orde+1):i])
}
##Mendefinisikan vektor MA Kedua
s2=c()
#Menghitung MA kedua
for (j in (2*orde-1):length(data)) {
s2[j] = mean(s1[(j-orde+1):j])
}
#Mendefinisikan Konstanta dan KOefisien Slope
a= c()
b= c()
#Menghitung Konstanta dan Koefisien Slope
for (k in (2*orde-1):length(data)) {
a[k] = s1[k] + (s1[k]-s2[k])
b[k] = 2/(orde-1)*(s1[k]-s2[k])
}
#Mendefinisikan Ventor Peramalan
f =c()
#Menghitung Peramalan data
f[2*orde-1] = a[2*orde-1]
for (l in (2*orde):(length(data)+1)) {
f[l] = a[l-1]+b[l-1]
}
#Mendefinisikan Ventor Precentage Error
PE = c()
#menghitung PE
for (m in (2*orde-1):length(data)){
PE[m] = abs(data[m]-f[m])/data[m]*100
}
#Menghitung MAPE
MAPE = mean(PE, na.rm = TRUE)
Hasil_Perhitungan = data.frame(Data = data, S1 = s1, S2 = s2, a = a, b = b, Ft= f[-length(f)], PE = PE)
list (Hasil_perhitungan = Hasil_Perhitungan, MAPE = MAPE, Peramalan_1_Periode_kedepan = f[length(f)])
}
sintaks di atas merupakan fungsi untuk menghitung DMA.
pertama adalah memanggil data, data yang digunakan adalah data Wajib Pajak Realisasi KEcamatan Samarinda Kota tahun 2010 hingga 2020.
Meanggil Data
## # A tibble: 11 x 2
## Tahun Wpreal
## <dbl> <dbl>
## 1 2010 94.5
## 2 2011 94.2
## 3 2012 77.9
## 4 2013 76.1
## 5 2014 73.1
## 6 2015 70.6
## 7 2016 68.5
## 8 2017 64.9
## 9 2018 61.6
## 10 2019 57.0
## 11 2020 45.4
diatas merupakan data yang sudah dipanggil. selanjutnya adalah membuat grafik runtun waktunya menggunakan package ggplot2 dan hrbrthemes.
Membuat Grafik Runtun Waktu
pada grafik di atas terlihta bahwa terjadi tren turun pada data WP realisasi yang artinya cocok untuk diramalkan menggunakan DMA.\
Melakukan Peramalan
#DMA dengan orde 2
DMA(data$Wpreal, 2)
## $Hasil_perhitungan
## Data S1 S2 a b Ft PE
## 1 94.54369 NA NA NA NA NA NA
## 2 94.21397 94.37883 NA NA NA NA NA
## 3 77.91611 86.06504 90.22194 81.90815 -8.313787 81.90815 5.1235064
## 4 76.08093 76.99852 81.53178 72.46526 -9.066520 73.59436 3.2683249
## 5 73.12553 74.60323 75.80088 73.40558 -2.395293 63.39874 13.3014869
## 6 70.59247 71.85900 73.23111 70.48688 -2.744233 71.01029 0.5918801
## 7 68.50591 69.54919 70.70409 68.39429 -2.309807 67.74265 1.1141583
## 8 64.94280 66.72436 68.13677 65.31194 -2.824833 66.08448 1.7579721
## 9 61.61075 63.27678 65.00057 61.55299 -3.447579 62.48711 1.4224041
## 10 57.00095 59.30585 61.29131 57.32039 -3.970928 58.10541 1.9376242
## 11 45.40726 51.20410 55.25498 47.15323 -8.101748 53.34946 17.4910343
##
## $MAPE
## [1] 5.112043
##
## $Peramalan_1_Periode_kedepan
## [1] 39.05148
## $Hasil_perhitungan
## Data S1 S2 a b Ft PE
## 1 94.54369 NA NA NA NA NA NA
## 2 94.21397 NA NA NA NA NA NA
## 3 77.91611 88.89126 NA NA NA NA NA
## 4 76.08093 82.73701 NA NA NA NA NA
## 5 73.12553 75.70752 82.44526 68.96979 -6.737739 68.96979 5.683023
## 6 70.59247 73.26631 77.23695 69.29567 -3.970637 62.23205 11.843219
## 7 68.50591 70.74130 73.23838 68.24423 -2.497077 65.32504 4.643215
## 8 64.94280 68.01373 70.67378 65.35368 -2.660052 65.74715 1.238546
## 9 61.61075 65.01982 67.92495 62.11469 -2.905128 62.69362 1.757597
## 10 57.00095 61.18483 64.73946 57.63021 -3.554627 59.20957 3.874709
## 11 45.40726 54.67299 60.29255 49.05342 -5.619562 54.07558 19.090166
##
## $MAPE
## [1] 6.875782
##
## $Peramalan_1_Periode_kedepan
## [1] 43.43386
berdasarkan hasil MAPE DMA orde 2 dan 3 MAPE orde 2 lebih kecil sehingga orde yang digunakan adalah orde dua dengan MAPE = 5.11 dengan hasil ramalan 1 periode kedepan yaitu 39.05. ssetelah didapatkan hasil ramalan selanjutnya membuat grafik perbandingan antara data asli dengan peramalan
Grafik Perbandingan
Hasil_hitung = DMA(data$Wpreal, 2)$Hasil_perhitungan
X = data.frame (Periode, WPreal = data$Wpreal, Ft = Hasil_hitung$Ft)
ggplot() +
geom_line(mapping = aes(Periode, X$Ft, color = "Peramalan"))+
geom_line(mapping = aes(Periode, X$WPreal, color = "Data Asli"))+
geom_point(mapping = aes(Periode, X$Ft, color = "Peramalan"))+
geom_point(mapping = aes(Periode, X$WPreal, color = "Data Asli")) +
theme_modern_rc() +
labs(x = "Periode", y = "WP PBB-P2 Kec. Samarinda Kota")