2017-01-13 3 views
0

Ich habe zwei Zeitreihen. Eins ist vorhergesagt und eins ist ursprünglich. Um die Vorhersagegenauigkeit zu berechnen, möchte ich MAPE (mittlerer absoluter Prozentfehler) berechnen. Der mittlere absolute prozentuale Fehler (MAPE), auch bekannt als mittlere absolute prozentuale Abweichung (MAPD), ist ein Maß für die Vorhersagegenauigkeit einer Prognosemethode in der Statistik, beispielsweise in der Trendschätzung. Er drückt in der Regel Genauigkeit als Prozentsatz und ist definiert durch die Formel:auszuschließen 0 in MAPE Berechnung in Matlab

formula for MAPE calculation

ich dies in MATLAB mache wie folgt:

function m = mape(testY, pred) 
% Compute mean absolute percent error 
% 
% m = mape(actual, pred) 
% 
% actual is a column vector of actual values 
% pred is a matrix of predictions (one per column) 
% 
% m is the mean absolute percent error (ignoring NaNs) for each column of 
% pred. 


err = abs(bsxfun(@minus, pred, testY)); 
pcterr = bsxfun(@rdivide, err, testY); 
m = nanmean(pcterr,1); 
end 

Aber wenn es eine 0 in Actual-Serie, Funktion gibt -INF im Ergebnis zurück.

Ich möchte diese 0 und den entsprechenden Wert in anderer Reihenfolge ausschließen und MAPE-Wert berechnen.

Antwort

1

Sie logische Indizierung im nanmean können die Nullwerte in testY

m = nanmean(pcterr(testY~=0),1); 
auszuschließen
Verwandte Themen