Breaking News

Sunday, January 28, 2018

Single Moving Average Menggunakan R

[INFO STATISTICS]
Hello sobat info statistics, kembali lagi di postingan baru nih,  kali ini kita akan mencoba untuk membahas analisis runtun waktu (Forecasting) menggunakan R.

Analisi Runtun Waktu merupakan metode analisis kuantitatif yang mempertimbangkan adanya suatu pengaruh waktu. Jenis data yang biasanya digunakan dalam analisis ini yaitu data time series. Data time series merupakan data yang dikumpulkan secara periodik berdasarkan urutan waktu, bisa dalam jam, hari, minggu, bulan, kuartal dan tahun. 

Beberapa analisis runtun waktu yang biasa digunakan dalam penelitian yaitu Moving Average, Double Moving Average, Exponential Smoothing, Double dan Triple Exponential Smoothing, Arima, Sarima, dan masih banyak lagi. Asumsi yang harus dipenuhi dalam analisis ini yaitu asumsi kestasioneran artinya sifat-sifat yang mendasari proses tidak dipengaruhi oleh waktu atau proses dalam keseimbangan. Apabila asumsi stasioner belum dipenuhi maka deret belum dapat dimodelkan. Namun, deret yang nonstasioner dapat ditransformasikan menjadi deret yang stasioner. 

Analisis runtun waktu selalu berkaitan dengan jenis pola data. ini merupakan salah satu aspek yang paling penting dalam penyeleksian metode peramalan yang sesuai untuk data runtun waktu. Ada 4 macam jenis pola data dalam runtun waktu.perhatikan gambar berikut : 


  1. Pola data Horizontal : Ketika data observasi berubah-ubah di sekitar tingkatan atau rata-rata yang konstan. sebagai contoh : penjualan tiap bulan suatu produk tidak meningkat atau menurun secara konsisten pada suatu waktu dapat dipertimbangkan untuk pola horizontal.
  2. Pola data Siklis : Pola cyclical ditandai dengan adanya fluktuasi bergelombang data yang terjadi di sekitar garis trend.
  3. Pola data Trend : Pola data trend terjadi bilamana data pengamatan mengalami kenaikan atau penurunan selama periode jangka panjang.
  4. Pola data MusimanPola data musiman terjadi  bilamana suatu deret dipengaruhi oleh faktor musiman. Pola data musiman dapat mempunyai pola musim yang berulang dari periode ke periode berikutnya. Misalnya pola yang berulang setiap bulantertentu, tahun tertentu  atau pada minggu tertentu.
Single Moving Average
Rata-rata bergerak tunggal (Moving average) untuk periode t adalah nilai rata-rata untuk n jumlah data terbaru. Dengan munculnya data baru, maka nilai rata-rata yang baru dapat dihitung dengan menghilangkan data yang terlama dan menambahkan data yang terbaru. Moving average ini digunakan untuk memprediksi nilai pada periode berikutnya. Model ini sangat cocok digunakan pada data yang stasioner atau data yang konstant terhadap variansi, tetapi tidak dapat bekerja dengan data yang mengandung unsur trend atau musiman.

Rata-rata bergerak pada orde 1 akan menggunakan data terakhir (Ft), dan menggunakannya untuk memprediksi data pada periode selanjutnya. Metode ini sering digunakan pada data kuartalan atau bulanan untuk membantu mengamati komponen-komponen suatu runtun waktu. Semakin besar orde rata-rata bergerak, semakin besar pula pengaruh pemulusan (smoothing).

Dibanding dengan rata-rata sederhana (dari satu data masa lalu) rata-rata bergerak berorde T mempunyai karakteristik sebagai berikut :
  • Hanya menyangkut T periode tarakhir dari data yang diketahui.
  • Jumlah titik data dalam setiap rata-rata tidak berubah dengan berjalannya waktu.
Kelemahan dari metode ini adalah :
  • Metode ini memerlukan penyimpanan yang lebih banyak karena semua T pengamatan terakhir harus disimpan , tidak hanya nilai rata-rata. 
  • Metode ini tidak dapat menanggulangi dengan baik adanya trend atau musiman, walaupun metode ini lebih baik dibanding rata-rata total
Diberikan N titik data dan diputuskan untuk menggunakan T pengamatan pada setiap rata-rata (yang disebut dengan rata-rata bergerak orde (T) atau MA(T), sehingga keadaannya adalah sebagai berikut : 
Secara singkat perhitungan metode ini sebagai berikut :

Ukuran Akurasi Peramalan
Dalam metode analisis runtun waktu ada beberapa ukuran untuk menentukan bagus tidaknya sebuah metode peramalan tersebut. 
  1. Mean Absolute Error (MAE)rata-rata absolute dari kesalahan meramal, tanpa menghiraukan tanda positif maupun negatif. 
  2. Mean Square Error (MSE) : kuadrat rata-rata kesalahan meramal
  3. Mean Absolute Percentage Error (MAPE): nilai tengah kesalahan persentase absolute dari suatu peramalan. 
  4. Percentage Error (PE) : Kesalahan persentase dari suatu peramalan. 
    dimana :
     xt =nilai data ke periode ke-t
     ft =nilai ramalan periode ke-t
     n =banyaknya data
Setelah kita mengetahui dasar dari Analisis runtun waktu maka kita akan coba melakukan analisis sederhana kita yaitu dengan menggunakan Single Moving Average dengan menggunakan bantuan R. 

Studi Kasus :
Perusahaan A ingin meramalkan pendapatan berdasarkan jumlah produk susu kaleng. Metode yang digunakan pada peramalan ini yaitu Single Moving Average dengan membandingkan MA (3) dan MA (5). Berikut adalah langkah analisisnya :

1. Pada kesempatan ini saya menggunakan R studio dalam menyelesaikan masalahini, ya supaya lebih asyik aja gitu :D.Pastikan program R anda telah terbuka.
2. Buat New Project, dengan klik file> new file > r script
3. Download Data Berikut : Download
4. Input data dengan menuliskan script berikut :
#input data
X=scan()
n=length(X)
k=3

5. Memunculkan hasil dari MA(3) gunakan script berikut :
#Peramalan dengan menggunakan MA(3)
MA=array(NA,dim=c(n))
for(i in 1:n){
  MA[i+k]=mean(X[i:(i+(k-1))])}
MA
View(MA)

6. Untuk mengukur akurasi peramalan kita gunakan dua yaitu MSE dan MAPE
##MSE##
e=array(NA,dim=c(n))
for(i in 1:n){
  e[i]=(X[i]-MA[i])^2
}
e
SSE=sum(e,na.rm=TRUE)#NA.RM=TRUE = NILAI KOSONG DI REMOVE
SSE
MSE=mean(e,na.rm=TRUE)
MSE
##MAPE##
PE=array(NA, dim=c(n))
for(i in 1:n){
  PE[i]=abs((X[i]-MA[i])/X[i])}
PE
MAPE=mean(PE,na.rm=TRUE)
MAPE

7. Untuk memudahkan dalam pembuatan plot maka kita tulis script berikut ini :
##data time series##
X=ts(X, start=1, end=31, freq=1)
X
MA5=ts(MA, start=1, end=31, freq=1)
MA5
pred=ts(MA[32], start=32, freq=1)
pred

8. Tuliskan Script berikut untuk mebuat Plot time series :
##plot tipe titik##
plot = plot(X, type="p", col="red",lwd=2, xlim=c(1,31), ylim=c(1000000,12000000), xlab="Tanggal", ylab="Rupiah", main="Plot Data Asli dan Ramalan Produk Susu ")
plot
lines(MA5, col="blue", lwd=2, type="p")
limitDate=end(X)[1]+(end(X)[2]-1)/frequency(X)
abline(v=limitDate,lty=4)
lines(pred,col="green", lwd=2, type="p")
legend("bottomleft", c("Asli", "Prediksi", "Ramalan"), pch=21, bty="n", lwd=2, col=c("red", "blue","green"))

9. Lakukan langkah yang sama untuk melakukan analisis SMA dengan MA(5) hanya dengan menggantia nilai k menjadi 5. 

[ANALISIS]
Berdasarkan dari beberapa langkah diatas, didapatkan hasil sebagai berikut : 
a. Hasil Forecast 

Gambar diatas menunjukan hasil analisis SMA dengan menggunakan MA (3) dan MA(5). Untuk menentukan manakah hasil peramalan yang paling baik diantara keduanya dengan cara melihat ukuran akurasi peramalan yang lebih kecil. pada postingan ini saya menggunakan MAPE untuk melihat tingkat akurasi peramalannya. Jika dilihat dari hasil analisisnya dengan melihat akurasi peramalan dengan metode MAPE, MA (5) lebih kecil dibandingkan dengan MA(3) ini artinya hasil peramalan dengan MA (5) lebih baik. Namun ketika anda ingin mencoba untuk melakukan peramalan dengan membandingkan beberapa MA , anda hanya tinggal mengganti nilai K saja pada bagian langka ke-4. 

b. Plot Hasil Forecasting
Untuk interpretasi mungkin bisa kawan kawan explore sendiri ya hehehe :D

Mungkin untuk postingan kali ini sampai disini dulu, untuk selanjutnya kita bakalan membahas Double Moving Average dan Exponential Smoothing. 

Terimakasih atas perhatiannya, [HAVE A NICE DAY ]

2 comments:

Copyright by INFO STATISTICS