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
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.