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.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir