2017-04-13 13 views
0

Ich habe eine echte Daten und vorhergesagte Daten und ich möchte insgesamt MAPE und MSE berechnen. Die Daten sind Zeitreihen, wobei jede Spalte Daten für verschiedene Wochen darstellt. Ich prognostiziere Wert für jede der 52 Wochen für jedes der Elemente, wie unten gezeigt. Was wäre der bestmögliche Gesamtrechner Fehler inEffizienter Weg, durchschnittliche MAPE und MSE in R zu berechnen

real = matrix( 
    c("item1", "item2", "item3", "item4", .5, .7, 0.40, 0.6, 0.3, 0.29, 0.7, 0.09, 0.42, 0.032, 0.3, 0.37), 
    nrow=4, 
    ncol=4) 
colnames(real) <- c("item", "week1", "week2", "week3") 


predicted = matrix( 
    c("item1", "item2", "item3", "item4", .55, .67, 0.40, 0.69, 0.13, 0.9, 0.47, 0.19, 0.22, 0.033, 0.4, 0.37), 
    nrow=4, 
    ncol=4) 
colnames(predicted) <- c("item", "week1", "week2", "week3") 

Antwort

0

Wie erhalten Sie die vorhergesagten Werte an erster Stelle? Das Modell, das Sie verwenden, um die vorhergesagten Werte zu erhalten, basiert wahrscheinlich auf der Minimierung einiger Funktionen von Vorhersagefehlern (normalerweise MSE). Wenn Sie daher Ihre vorhergesagten Werte berechnen, wurden die Residuen und einige Metriken für MSE und MAPE irgendwo entlang der Linie bei der Anpassung des Modells berechnet. Sie können sie wahrscheinlich direkt abrufen.

Wenn die vorhergesagten Werte zufällig in den Schoß geworfen werden, und Sie haben nichts mit der Montage des Modells zu tun, dann berechnen Sie MSE und MAPE nach unten:

Sie haben nur einen Datensatz pro Woche für jeden Artikel . Für jeden Artikel können Sie also nur einen Vorhersagefehler pro Woche berechnen. Abhängig von Ihrer Anwendung können Sie die MSE und MAPE pro Artikel oder pro Woche berechnen.

Dies ist, was Ihre Daten wie folgt aussieht:

real <- matrix( 
    c(.5, .7, 0.40, 0.6, 0.3, 0.29, 0.7, 0.09, 0.42, 0.032, 0.3, 0.37), 
    nrow = 4, ncol = 3) 
colnames(real) <- c("week1", "week2", "week3") 

predicted <- matrix( 
    c(.55, .67, 0.40, 0.69, 0.13, 0.9, 0.47, 0.19, 0.22, 0.033, 0.4, 0.37), 
    nrow = 4, ncol = 3) 
colnames(predicted) <- c("week1", "week2", "week3") 

Berechnen Sie den (percentage/Quadrat) Fehler für jeden Eintrag:

pred_error <- real - predicted 
pct_error  <- pred_error/real 
squared_error <- pred_error^2 

berechnen MSE, MAPE:

# For per-item prediction errors 
apply(squared_error, MARGIN = 1, mean) # MSE 
apply(abs(pct_error), MARGIN = 1, mean) # MAPE 

# For per-week prediction errors 
apply(squared_error, MARGIN = 0, mean) # MSE 
apply(abs(pct_error), MARGIN = 0, mean) # MAPE 
Verwandte Themen