2017-01-13 1 views
0

두 개의 시계열이 있습니다. 하나는 예측되고 하나는 원본입니다. 예측 정확도를 계산하려면 MAPE (평균 절대 비율 오류)를 계산하고 싶습니다.matlab에서 MAPE 계산에서 0 제외

평균 절대 백분위 편차 (MAPD)는 평균 추세 예측과 같은 통계의 예측 방법의 예측 정확도를 측정합니다. 그것은 일반적으로 백분율로 정밀도를 표현하고, 공식에 의해 정의된다 다음과 같이 내가 MATLAB에서이 일을하고

formula for MAPE calculation

:

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 

을하지만 실제 시리즈에서 0이있을 때, 함수는 결과에서 -INF를 반환합니다.

다른 시퀀스에서 0과 해당 값을 제외하고 MAPE 값을 계산하고 싶습니다.

답변

1

당신은 testY

m = nanmean(pcterr(testY~=0),1); 
에 0 값을 제외 할 nanmean 논리 인덱싱을 사용할 수 있습니다