R'de mape nasıl hesaplanır
Bir modelin tahmin doğruluğunu ölçmek için en yaygın kullanılan ölçümlerden biri, ortalama mutlak yüzde hatası anlamına gelen MAPE’dir .
MAPE’yi hesaplamak için formül aşağıdaki gibidir:
MAPE = (1/n) * Σ(|gerçek – tahmin| / |gerçek|) * 100
Altın:
- Σ – “toplam” anlamına gelen süslü bir sembol
- n – örneklem büyüklüğü
- gerçek – verilerin gerçek değeri
- tahmin – verilerin beklenen değeri
MAPE, yorumlanması ve açıklanması kolay olduğundan yaygın olarak kullanılmaktadır. Örneğin %6’lık bir MAPE değeri, tahmin edilen değer ile gerçek değer arasındaki ortalama farkın %6 olduğu anlamına gelir.
Bu eğitimde R’de MAPE’yi hesaplamak için kullanabileceğiniz iki farklı yöntem sunulmaktadır.
Yöntem 1: Kendi işlevinizi yazın
Gerçek veri değerlerini içeren bir sütuna ve tahmin edilen veri değerlerini içeren bir sütuna sahip bir veri setimiz olduğunu varsayalım:
#create dataset data <- data. frame (actual=c(34, 37, 44, 47, 48, 48, 46, 43, 32, 27, 26, 24), forecast=c(37, 40, 46, 44, 46, 50, 45, 44, 34, 30, 22, 23)) #view dataset data current forecast 1 34 37 2 37 40 3 44 46 4 47 44 5 48 46 6 48 50 7 46 45 8 43 44 9 32 34 10 27 30 11 26 22 12 24 23
MAPE’yi hesaplamak için aşağıdaki işlevi kullanabiliriz:
#calculate MAPE
mean(abs((data$actual-data$forecast)/data$actual)) * 100
[1] 6.467108
Bu modelin MAPE’si %6,467 olarak çıkıyor. Yani tahmin edilen değer ile gerçekleşen değer arasındaki ortalama mutlak fark %6,467’dir.
Yöntem 2: Paket kullanma
Aynı veri kümesi için MAPE’yi, aşağıdaki sözdizimini kullanan MLmetrics paketindeki MAPE() işlevini kullanarak da hesaplayabiliriz:
MAPE(y_pred, y_true)
Altın:
- y_pred: tahmin edilen değerler
- y_true: gerçek değerler
Örneğimizde kullanacağımız sözdizimi şöyledir:
#load MLmetrics package library (MLmetrics) #calculate MAPE MAPE(data$forecast, data$actual) [1] 0.06467108
Bu, önceki yöntemi kullanarak hesapladığımız %6,467’lik MAPE değerinin aynısını üretir.