Breaking News

Friday, February 9, 2018

Double Moving Average menggunakan R

[INFO STATISTICS]
Hai sobat Info Statistics, gimana kabarnya ???

Melanjutkan postingan sebelumnya yaitu (Single Moving Average menggunakan R), Pada kesempatan kali ini kita akan belajar menyelesaikan analisis Double Moing Average dengan menggunakan R / R Studio. Namun sebelum itu kita harus tahu terlebih dahulu apa itu Double Moing Average. 

Double Moving Average adalah salah satu peramalan time series dengan melihat data trend adalah peramalan dengan metode double moving average. Pertama kali dilakukan moving average kemudian baru dilakukan lagi moving average untuk data yang tadi yang sudah di moving average pertama kali. Berikuti ni adalah rumus yang dipakai pada peramalan ini yaitu


Dimana :
Mt     = Moving Average periode t
Ft+1   = Ramalan Periode  t + 1
Yt      = Nilai Riil periode ke t
n       = Jumlah batas dalam moving average
m      = Jumlah periode yang akan diramalkan

Supaya tidak berlama-lama, mari kita langsung dengan studi kasus kita.

[STUDI KASUS]
Sebuah perusahaan jersey Chelsea FC menghasilkan data penjualan dalam periode juli 2013 sampai februari 2016 sebagai berikut : 
Lakukan Forecast dengan metode Double Moving Average orde 3x3 untuk 3 periode kedepan.
Ikuti langkah-langkah berikut ini : 

1. Pastikan R/R Studio anda sudah bekerja.

2. Buat New Project, dengan klik file> new file > r script.

3. Download data berikut : Data Penjualan

4. Input Data dengan menuliskan script berikut : 
#Double MA
#input data, run X=scan() kemudian copy data pada R console 
X=scan()
n=length(X)
k=3

5. Sebelum melakukan  MA (3X3) anda harus melakukan prediksi menggunakan MA terlebih dahulu. Kali ini saya menggunakan K=3 yaitu MA(3) seperti yang sudah di tunjukan gambar di atas. 

6. Untuk memunculkan MA(3) dapat digunakan script berikut :
#Peramalan dengan MA(3)
MA=array(NA,dim=c(n))
for(i in 1:n){
  MA[i+(k-1)]=mean(X[i:(i+(k-1))])}
MA
View(MA)

7. Melakukan peramalan MA(3X3). Namun ini belum dapat dilakukan sebagai prediksi karena harus mencari nilai at (koefisien intersept) dan nilai bt (Koefisien Trend). 
m=3
DMA=array(NA,dim=c(n))
for(i in 1:n){
  DMA[i+(m-1)+(k-1)]=mean(MA[(i+(k-1)):(i+(m-1)+(k-1))])}
DMA
View(DMA)

8. Cari nilai a(koefisien intersept) dengan menuliskan script berikut :
#Mencari nilai a
a=array(NA,dim=c(n))
for(i in 1:n){
  a[i+(m-1)+(k-1)]=2*MA[i+(m-1)+(k-1)]-DMA[i+(m-1)+(k-1)]}
a

9. Mencari nilai b(Koefisien Trend).
#mencari nilai b
b=array(NA,dim=c(n))
for(i in 1:n){
  b[i+(m-1)+(k-1)]=(2/(m-1))*(MA[i+(m-1)+(k-1)]-DMA[i+(m-1)+(k-1)])}
b

10. Melakukan Prediksi dengan memunculkan hasil prediksi 
#Prediksi
Prediksi=array(NA,dim=c(n))
for(i in 1:n){
  Prediksi[i+(m-1)+(k-1)+1]=a[i+(m-1)+(k-1)]+b[i+(m-1)+(k-1)]
}
Prediksi

11. Untuk melihat akurasi peramalan tersebut dapat dilakukan dengan melihat nilai MSE dan MAPE : 
#error
e=array(NA,dim=c(n))
for(i in 1:n){
  e[i]=(X[i]-Prediksi[i])^2
}
MSE=mean(e,na.rm=TRUE)
MSE

#MAPE
PE=array(NA, dim=c(n))
for(i in 1:n){
  PE[i]=abs((X[i]-Prediksi[i])/X[i])}
PE
MAPE=mean(PE,na.rm=TRUE)
MAPE

12. Lakukan Forecast untuk 3 periode kedepan.
#forecast 3 periode kedepan
Forecast=function(h){
  a[n]+b[n]*h 
}
Ramalan=Forecast(1:4)
Ramalan
dari script diatas menghasilkan output :
[1] 136.6667 137.6667 138.6667 139.6667

13. Untuk lebih mempermudah melakukan peramalan maka dapat digunakan script dibawah ini :
######## data time series #######
Ramalan=c(Prediksi[48],Ramalan)
X=ts(X, start=c(2013,7), end=c(2016,2), freq=12)
Prediksi=ts(Prediksi, start=c(2013,7), end=c(2016,2), freq=12)
Ramalan=ts(Ramalan, start=c(2016,2), end=c(2016,5), freq=12)
Ramalan
Maka output yang dihasilkan sebagai berikut :
> Ramalan
          Feb      Mar      Apr      May
2016 136.6667 137.6667 138.6667 139.6667

14. Kemudian langkah terakhir membuat plot data actual dan prediksi dari kasus tersebut : 
########## plot data ################
plot(X, type="l", col="red",lwd=2, xlim=c(2013,2016), ylim=c(100,300), xlab="Tahun", ylab="Jumlah Penjualan", main="Plot Data Asli dan Ramalan MA(3x3)")
lines(Prediksi, col="blue", lwd=2)
limitDate=end(X)[1]+(end(X)[2]-1)/frequency(X)
abline(v=limitDate ,lty=4)
lines(Ramalan,col="green", lwd=2)
legend("topleft", c("Asli", "Prediksi", "Ramalan"), bty="n", lwd=2, col=c("red", "blue","green"))

15. Lihat hasil plot berikut :
Berdasarkan gambar diatas garis berwarna merah menunjukan data actual dari penjualan jersey tersebut. Kemudian garis berwarna biru menunjukan hasil prediksi menggunakan MA (3X3), dan garis hijau kecil menunjukan hasil forecasting 3 periode kedepan yaitu Maret = 138 pcs, April = 139 pcs, dan Mei =140 pcs. 

Cukup mudah kan sobat. Baik cukup disini dulu postingan kali ini , kita akan lanjutkan di postingan selanjutnya. 

Terimakasih, jangan lupa like & share !!!


2 comments:

  1. Ada email/wa yg bs dihubungi kah?

    ReplyDelete
  2. Info Statistics: Double Moving Average Menggunakan R >>>>> Download Now

    >>>>> Download Full

    Info Statistics: Double Moving Average Menggunakan R >>>>> Download LINK

    >>>>> Download Now

    Info Statistics: Double Moving Average Menggunakan R >>>>> Download Full

    >>>>> Download LINK

    ReplyDelete

Copyright by INFO STATISTICS