Perhitungan Error Forecasting

By | January 15, 2021
Print Friendly, PDF & Email
4,701 Views

Sinopsis

Kalau kalian sedang bekerja untuk analisis forecasting tentu akan berhadapan dengan cara mengukur kinerja sebuah algoritma forecasting yaitu antara hasil prediksi dan aktualnya. Selain menggunakan Root Mean Square, kalian bisa menggunakan rumus berikut

 

Mean absolute deviation (MAD)

Mean absolute deviation mengukur akurasi dari forecast dengan membuat sama rata dari besarnya kesalahan perkiraan yang dimana setiap forecasting memiliki nilai absolut untuk setiap errornya.

Rumus yang dipakai untuk menghitung MAD adalah :

    \[MAD=\frac{1}{n}\sum_{t=1}^{n}|y_{t1}-y_{t2}|\]

dengan nilai y_{t1} adalah nilai aktual dan y_{t2} nilai forecasting pada nilai t_{2}

Mean squared deviation (MSD)

biasanya dipakai untuk mengukur akurasi dari nilai time series yang mau dihitung. Dimana MSD biasanya memiliki efek lebih besar dibandingkan MAD.

Rumus yang dipakai untuk menghitung MSD adalah :

    \[MSD=\frac{1}{n}\sum_{t=1}^{n}|y_{t1}-y_{t2}|^{2}\]

Mean absolute percentage error (MAPE)

Mean absolute percentage error dihitung dengan cara mencari error/kesalahan absolut di setiap periode yang dimana dibagi dengan nilai observasi yang aktual pada periode itu, dan dibuat rata – rata dari absolute percentage error tersebut.

Rumus yang dipakai untuk menghitung MAD adalah :

    \[MAPE=\frac{1}{n}\sum_{t=1}^{n}\frac{|y_{t1}-y_{t2}|}{y_{t1}}\]

Agar kalian lebih mudah, berikut sudah dibuatkan contoh kodenya di Matlab

clc;clear all;close all;
target = [10,20,45,80];
prediksi = [15,18,40,81];

error_mse = immse(target,prediksi); %rumus bawaan untuk menghitung MSE
error_mad = hitungmad(target,prediksi);
error_msd = hitungmsd(target,prediksi);
error_mape = hitungmape(target,prediksi);

rincian_error = array2table([error_mse,error_mad,error_msd,error_mape],'variablenames',{'mse','mad','msd','mape'});
disp('Rincian Error');
disp(rincian_error)




%ref: https://www.softscients.web.id/2020/02/buku-belajar-machine-learning-dengan_22.html
function [result]=hitungmad(x,y)
    n = 1/length(x);
    result = n *(sum(abs(x-y))); 
end

function [result]=hitungmsd(x,y)  
    n = 1/length(x);
    result = n*(sum(abs(x-y).^2));
    
end

function [result]=hitungmape(x,y)
    n = 1/length(x);
    result = n*(sum(abs(x-y)./y));
end

hasil

Rincian Error
     mse     mad      msd      mape  
    _____    ____    _____    _______

    13.75    3.25    13.75    0.14545

Kalian bisa melihat hasilnya diatas, terserah kalian akan menggunakan rumus yang mana, kunjungi link ini kalau kalian ingin pelajari machine learning dengan matlab

 

Leave a Reply